当前位置:首页 » 编程软件 » pcm编译码实验怎么做

pcm编译码实验怎么做

发布时间: 2022-09-27 16:12:28

❶ 叙述pcm编解码的基本步骤 叙述pcm的优缺点 量化有没有反变换

1叙述PCM编解码的基本步骤    
采样——量化——编码 

2量化有没有反变换?对通信有何影响?从实验中看对波形影响有多大?
量化会导致SNR损失,是无法恢复的。实际使用的反变换都是有误差的。  

3PCM通信中为什么需要同步?需要哪些同步?实验中可不可以省去同步过程?     
使PCM通信系统中发、收两端的定时脉冲在时间上一致起来; 
需要位同步、帧同步; 不可以。  
4对PCM可有什么改进,举出改进方式的例子
PCM容易利用采样中多余度的编码方案将使语音信号的码率降低。 一种简单的解决方法就是对相邻样本之差编码而不是对样本本身编码,由于相邻样本之差比实际样本幅度小,所以表示差信号需要较小的位数。这种普通方法的一种改进方案是用前面的n个样本根据一定的规律来预测当前的样本,然后将预测值与实际值的误差进行量化后传输,在根据误差信号,采用和发送端相同的预测方法恢复出原始信号。

❷ pcm编译码系统的频率响应特性

特性:将频率不同的正弦信号输入传感器,相应的输出信号的幅度和相位与频率之间的关系称为频率响应特性。频率响应特性可由频率响应函数表示,它由幅频特性和相频特性组成。

本实验模块可以传输两路话音信号。采用TP3057编译器,它包括了图9-1中的收、发低通滤波器及PCM编译码器。

编码器输入信号可以是本实验模块内部产生的正弦信号,也可以是外部信号源的正弦信号或电话信号。本实验模块中不含电话机和混合电路,广义信道是理想的,即将复接器输出的PCM信号直接送给分接器。

标注方法

放大器在不同的输出功率下,其频响是不同的,通常输出功率越大,其频响指标就越差。而一个比较负责任的指标标注,应该指“在该放大器的最大不失真功率下测量的指标”,而一些厂家为了回避大功率输出下放大器特性的劣化,使得该指标“看起来好看”,往往采用的是“标准测试方式”,也就是说,在给定放大器放大倍数(增益)的条件下进行测试,而这个放大倍数通常是1。

❸ 求编程高手帮忙~写一段8位二进制折叠码(PCM编码器)编译码程序

#include <stdio.h>
#include <conio.h>

int trans(int n)
{
int r=0;

if(n<0)
{
r=r|0x80;
n=-n;
}
if(n<=16)
{
r=r|0x00;
}
else if(n<=32)
{
r=r|0x10;
}
else if(n<=64)
{
r=r|0x20;
}
else if(n<=128)
{
r=r|0x30;
}
else if(n<=256)
{
r=r|0x40;
}
else if(n<=512)
{
r=r|0x50;
}
else if(n<=1024)
{
r=r|0x60;
}
else if(n<=2046)
{
r=r|0x70;
}
else
{
return 0;
}
r=r|(n&0x0f);
return r;
}

main()
{
int n,r,i;

printf("输入一个10进制(1-2048):");
scanf("%d",&n);
if(n>=1 && n<=2048)
{
r=trans(n);
printf("8位2进制为:");
for(i=0;i<8;i++)
{
printf("%c",((r>>(8-i-1))&0x01)+'0');
}
printf("\n");
}
else
{
printf("输入错误!\n");
}
}

❹ pcm编码的编码过程

模拟信号数字化必须经过三个过程,即抽样、量化和编码,以实现话音数字化的脉冲编码调制技术。

具体介绍:

1、抽样

抽样是把模拟信号以其信号带宽2倍以上的频率提取样值,变为在时间轴上离散的抽样信号的过程。例如,话音信号带宽被限制在0.3~3.4kHz内,用 8kHz的抽样频率(fs),就可获得能取代原来连续话音信号的抽样信号。

2、量化

抽样信号虽然是时间轴上离散的信号,但仍然是模拟信号,其样值在一定的取值范围内,可有无限多个值。显然,对无限个样值一一给出数字码组来对应是不可能的。

为了实现以数字码表示样值,必须采用“四舍五入”的方法把样值分级“取整”,使一定取值范围内的样值由无限多个值变为有限个值。这一过程称为量化。

3、编码

量化后的抽样信号在一定的取值范围内仅有有限个可取的样值,且信号正、负幅度分布的对称性使正、负样值的个数相等,正、负向的量化级对称分布。

若将有限个 量化样值的绝对值从小到大依次排列,并对应地依次赋予一个十进制数字代码(例如,赋予样值0的十进制数字代码为0),在码前以“+”、“-”号为前缀,来 区分样值的正、负,则量化后的抽样信号就转化为按抽样时序排列的一串十进制数字码流,即十进制数字信号。

简单高效的数据系统是二进制码系统,因此,应将十 进制数字代码变换成二进制编码。根据十进制数字代码的总个数,可以确定所需二进制编码的位数,即字长。这种把量化的抽样信号变换成给定字长的二进制码流的过程称为编码。

(4)pcm编译码实验怎么做扩展阅读:

注意:

在计算机应用中,能够达到最高保真水平的就是PCM编码,被广泛用于素材保存及音乐欣赏,CD、DVD以及我们常见的 WAV文件中均有应用。

因此,PCM约定俗成了无损编码,因为PCM代表了数字音频中最佳的保真水准,并不意味着PCM就能够确保信号绝对保真,PCM也只能做到最大程度的无限接近。要算一个PCM音频流的码率是一件很轻松的事情,采样率值×采样大小值×声道数 bps。

一个采样率为44.1KHz,采样大小为16bit,双声道的PCM编码的WAV文件,它的数据速率则为 44.1K×16×2 =1411.2 Kbps。我们常见的Audio CD就采用了PCM编码,一张光盘的容量只能容纳72分钟的音乐信息。

❺ pcm 编译码芯片中的用到哪些滤波器这些滤波器的带宽设置是如何考虑 的

1. 点到点PCM多路电话通信原理
脉冲编码调制(PCM)技术与增量调制(ΔM)技术已经在数字通信系统中得到广泛应用。当信道噪声比较小时一般用PCM,否则一般用ΔM。目前速率在155MB以下的准同步数字系列(PDH)中,国际上存在A解和μ律两种PCM编译码标准系列,在155MB以上的同步数字系列(SDH)中,将这两个系列统一起来,在同一个等级上两个系列的码速率相同。而ΔM在国际上无统一标准,但它在通信环境比较恶劣时显示了巨大的优越性。
点到点PCM多路电话通信原理可用图9-1表示。对于基带通信系统,广义信道包括传输媒质、收滤波器、发滤波器等。对于频带系统,广义信道包括传输媒质、调制器、解调器、发滤波器、收滤波器等。
本实验模块可以传输两路话音信号。采用TP3057编译器,它包括了图9-1中的收、发低通滤波器及PCM编译码器。编码器输入信号可以是本实验模块内部产生的正弦信号,也可以是外部信号源的正弦信号或电话信号。本实验模块中不含电话机和混合电路,广义信道是理想的,即将复接器输出的PCM信号直接送给分接器。
2. PCM编译码模块原理
本模块的原理方框图图9-2所示,电原理图如图9-3所示(见附录),模块内部使用+5V和-5V电压,其中-5V电压由-12V电源经7905变换得到。
图9-2 PCM编译码原理方框图
该模块上有以下测试点和输入点:
• BS PCM基群时钟信号(位同步信号)测试点
• SL0 PCM基群第0个时隙同步信号
• SLA 信号A的抽样信号及时隙同步信号测试点
• SLB 信号B的抽样信号及时隙同步信号测试点
• SRB 信号B译码输出信号测试点
• STA 输入到编码器A的信号测试点
• SRA 信号A译码输出信号测试点
• STB 输入到编码器B的信号测试点
• PCM PCM基群信号测试点
• PCM-A 信号A编码结果测试点
• PCM-B 信号B编码结果测试点
• STA-IN 外部音频信号A输入点
• STB-IN 外部音频信号B输入点
本模块上有三个开关K5、K6和K8,K5、K6用来选择两个编码器的输入信号,开关手柄处于左边(STA-IN、STB-IN)时选择外部信号、处于右边(STA-S、STB-S)时选择模块内部音频正弦信号。K8用来选择SLB信号为时隙同步信号SL1、SL2、SL5、SL7中的某一个。
图9-2各单元与电路板上元器件之间的对应关系如下:
•晶振 U75:非门74LS04;CRY1:4096KHz晶体
•分频器1 U78:A:U78:D:触发器74LS74;U79:计数器74LS193
•分频器2 U80:计数器74LS193;U78:B:U78:D:触发器74LS74
•抽样信号产生器 U81:单稳74LS123;U76:移位寄存器74LS164
•PCM编译码器A U82:PCM编译码集成电路TP3057(CD22357)
•PCM编译码器B U83:PCM编译码集成电路TP3057(CD22357)
•帧同步信号产生器 U77:8位数据产生器74HC151;U86:A:与门7408
•正弦信号源A U87:运放UA741
•正弦信号源B U88:运放UA741
•复接器 U85:或门74LS32
晶振、分频器1、分频器2及抽样信号(时隙同步信号)产生器构成一个定时器,为两个PCM编译码器提供2.048MHz的时钟信号和8KHz的时隙同步信号。在实际通信系统中,译码器的时钟信号(即位同步信号)及时隙同步信号(即帧同步信号)应从接收到的数据流中提取,方法如实验五及实验六所述。此处将同步器产生的时钟信号及时隙同步信号直接送给译码器。
由于时钟频率为2.048MHz,抽样信号频率为8KHz,故PCM-A及PCM-B的码速率都是2.048MB,一帧中有32个时隙,其中1个时隙为PCM编码数据,另外31个时隙都是空时隙。
PCM信号码速率也是2.048MB,一帧中的32个时隙中有29个是空时隙,第0时隙为帧同步码(×1110010)时隙,第2时隙为信号A的时隙,第1(或第5、或第7 —由开关K8控制)时隙为信号B的时隙。
本实验产生的PCM信号类似于PCM基群信号,但第16个时隙没有信令信号,第0时隙中的信号与PCM基群的第0时隙的信号也不完全相同。
由于两个PCM编译码器用同一个时钟信号,因而可以对它们进行同步复接(即不需要进行码速调整)。又由于两个编码器输出数据处于不同时隙,故可对PCM-A和PCM-B进行线或。本模块中用或门74LS32对PCM-A、PCM-B及帧同步信号进行复接。在译码之前,不需要对PCM进行分接处理,译码器的时隙同步信号实际上起到了对信号分路的作用。
3. TP3057简介
本模块的核心器件是A律PCM编译码集成电路TP3057,它是CMOS工艺制造的专用大规模集成电路,片内带有输出输入话路滤波器,其引脚及内部框图如图9-4、图9-5所示。引脚功能如下:
图9-4 TP3057引脚图
(1) V一 接-5V电源。
(2) GND 接地。
(3) VFRO 接收部分滤波器模拟信号输出端。
(4) V+ 接+5V电源。
(5) FSR 接收部分帧同信号输入端,此信号为8KHz脉冲序列。
(6) DR 接收部分PCM码流输入端。
(7) BCLKR/CLKSEL 接收部分位时钟(同步)信号输入端,此信号将PCM码流在FSR上升沿后逐位移入DR端。位时钟可以为64KHz到2.048MHz的任意频率,或者输入逻辑“1”或“0”电平器以选择1.536MHz、1.544MHz或2.048MHz用作同步模式的主时钟,此时发时钟信号BCLKX同时作为发时钟和收时钟。
(8) MCLKR/PDN 接收部分主时钟信号输入端,此信号频率必须为1.536MHz、1.544MHz或2.048MHz。可以和MCLKX异步,但是同步工作时可达到最佳状态。当此端接低电平时,所有的内部定时信号都选择MCLKX信号,当此端接高电平时,器件处于省电状态。
(9) MCLKX 发送部分主时钟信号输入端,此信号频率必须为1.536MHz、1.544MHz或2.048MHz。可以和MCLKR异步,但是同步工作时可达到最佳状态。
(10) BCLKX 发送部分位时钟输入端,此信号将PCM码流在FSX信号上升沿后逐位移出DX端,频率可以为64KHz到2.04MHz的任意频率,但必须与MCLKX同步。
图9-5 TP3057内部方框图
(11) DX 发送部分PCM码流三态门输出端。
(12) FSX 发送部分帧同步信号输入端,此信号为8KHz脉冲序列。
(13) TSX 漏极开路输出端,在编码时隙输出低电平。
(14) GSX 发送部分增益调整信号输入端。
(15) VFXi- 发送部分放大器反向输入端。
(16) VFXi+ 发送部分放大器正向输入端。
TP3057由发送和接收两部分组成,其功能简述如下。
发送部分:
包括可调增益放大器、抗混淆滤波器、低通滤波器、高通滤波器、压缩A/D转换器。抗混淆滤波器对采样频率提供30dB以上的衰减从而避免了任何片外滤波器的加入。低通滤波器是5阶的、时钟频率为128MHz。高通滤波器是3阶的、时钟频率为32KHz。高通滤波器的输出信号送给阶梯波产生器(采样频率为8KHz)。阶梯波产生器、逐次逼近寄存器(S•A•R)、比较器以及符号比特提取单元等4个部分共同组成一个压缩式A/D转换器。S•A•R输出的并行码经并/串转换后成PCM信号。参考信号源提供各种精确的基准电压,允许编码输入电压最大幅度为5VP-P。
发帧同步信号FSX为采样信号。每个采样脉冲都使编码器进行两项工作:在8比特位同步信号BCLKX的作用下,将采样值进行8位编码并存入逐次逼近寄存器;将前一采样值的编码结果通过输出端DX输出。在8比特位同步信号以后,DX端处于高阻状态。
接收部分:
包括扩张D/A转换器和低通滤波器。低通滤波器符合AT&T D3/D4标准和CCITT建议。D/A转换器由串/并变换、D/A寄存器组成、D/A阶梯波形成等部分构成。在收帧同步脉冲FSR上升沿及其之后的8个位同步脉冲BCLKR作用下,8比特PCM数据进入接收数据寄存器(即D/A寄存器),D/A阶梯波单元对8比特PCM数据进行D/A变换并保持变换后的信号形成阶梯波信号。此信号被送到时钟频率为128KHz的开关电容低通滤波器,此低通滤波器对阶梯波进行平滑滤波并对孔径失真(sinx)/x进行补尝。
在通信工程中,主要用动态范围和频率特性来说明PCM编译码器的性能。
动态范围的定义是译码器输出信噪比大于25dB时允许编码器输入信号幅度的变化范围。PCM编译码器的动态范围应大于图9-6所示的CCITT建议框架(样板值)。
当编码器输入信号幅度超过其动态范围时,出现过载噪声,故编码输入信号幅度过大时量化信噪比急剧下降。TP3057编译码系统不过载输入信号的最大幅度为5VP-P。
由于采用对数压扩技术,PCM编译码系统可以改善小信号的量化信噪比,TP3057采用A律13折线对信号进行压扩。当信号处于某一段落时,量化噪声不变(因在此段落内对信号进行均匀量化),因此在同一段落内量化信噪比随信号幅度减小而下降。13折线压扩特性曲线将正负信号各分为8段,第1段信号最小,第8段信号最大。当信号处于第一、二段时,量化噪声不随信号幅度变化,因此当信号太小时,量化信噪比会小于25dB,这就是动态范围的下限。TP3057编译码系统动态范围内的输入信号最小幅度约为0.025Vp-p。
常用1KHz的正弦信号作为输入信号来测量PCM编译码器的动态范围。
图9-6 PCM编译码系统动态范围样板值
语音信号的抽样信号频率为8KHz,为了不发生频谱混叠,常将语音信号经截止频率为3.4KHz的低通滤波器处理后再进行A/D处理。语音信号的最低频率一般为300Hz。TP3057编码器的低通滤波器和高通滤波器决定了编译码系统的频率特性,当输入信号频率超过这两个滤波器的频率范围时,译码输出信号幅度迅速下降。这就是PCM编译码系统频率特性的含义。
四、实验步骤
1. 熟悉PCM编译码单元工作原理,开关K9接通8KHz(置为1000状态),开关K8置为SL1(或SL5、SL7),开关K5、K6分别置于STA-S、STB-S端,接通实验箱电源。
2. 用示波器观察STA、STB,调节电位器R19(对应STA)、R20(对应STB),使正弦信号STA、STB波形不失真(峰峰值小于5V)。
3. 用示波器观察PCM编码输出信号。
示波器CH1接SL0,(调整示波器扫描周期以显示至少两个SL0脉冲,从而可以观察完整的一帧信号)CH2分别接SLA、PCM-A、SLB、PCM-B以及PCM,观察编码后的数据所处时隙位置与时隙同步信号的关系以及PCM信号的帧结构(注意:本实验的帧结构中有29个时隙是空时隙,SL0、SLA及SLB的脉冲宽度等于一个时隙宽度)。
开关K8分别接通SL1、SL2、SL5、SL7,观察PCM基群帧结构的变化情况。
4. 用示波器观察PCM译码输出信号
示波器的CH1接STA,CH2接SRA,观察这两个信号波形是否相同(有相位差)。
5. 用示波器定性观察PCM编译码器的动态范围。
开关K5置于STA-IN端,将低失真低频信号发生器输出的1KHz正弦信号从STA-IN输入到TP3057(U82)编码器。示波器的CH1接STA(编码输入),CH2接SRA(译码输出)。将信号幅度分别调至大于5VP-P、等于5VP-P,观察过载和满载时的译码输出波形。再将信号幅度分别衰减10dB、20dB、30dB、40dB、45dB、50dB,观察译码输出波形(当衰减45dB以上时,译码输出信号波形上叠加有较明显的噪声)。
也可以用本模块上的正弦信号源来观察PCM编译码系统的过载噪声(只要将STA-S或STB-S信号幅度调至5VP-P以上即可),但必须用专门的信号源才能较方便地观察到动态范围。

❻ 音频编解码类型pcm是什么意思,用什么软件可以编辑

PCM是数字语音。播放PCM,编写代码,例如,使用QT中的core gui multimedia ,audio的API可以播放,或者编写C代码,直接驱动声卡即可。或者,在PCM上加文件头,例如.wav(网上有规则),播放.wav文件的播放器很多。最后,去网上找转换工具,具体的没有用过,有的网友说可以。

❼ 跪求matlab中PCM的编码和解码,在线等!

1.PCM 编码实现(M函数)

function code=PCMcoding(Range,S)
code=zeros(1,8);
Normalization=abs(S)/Range;
deta=1/2048;
if sign(S)==1
code(1)=1;
else
code(1)=0;
end
detas=ceil(Normalization/deta);
if detas>128
code(2)=1;
if detas>512
code(3)=1;
if detas>1024
code(4)=1;
end
elseif detas>256
code(4)=1;
end
elseif detas>32
code(3)=1;
if detas>64
code(4)=1;
end
elseif detas>16
code(4)=1;
end

Tribal=bin2dec(num2str(code(2:4)))+1;
if Tribal==1
Interval=1;
else Interval=(2^(Tribal+2))/16;
end
if Tribal==1
code(5)=(2^3)*Interval<detas;
code(6)=code(5)*(2^3)*Interval+(2^2)*Interval<detas;
code(7)=code(5)*(2^3)*Interval+code(6)*(2^2)*Interval+(2^1)*Interval<detas;
code(8)=code(5)*(2^3)*Interval+code(6)*(2^2)*Interval+code(7)*(2^1)*Interval+(2^0)*Interval<detas;
else
code(5)=2^(Tribal+2)+(2^3)*Interval<detas;
code(6)=2^(Tribal+2)+code(5)*(2^3)*Interval+(2^2)*Interval<detas;
code(7)=2^(Tribal+2)+code(5)*(2^3)*Interval+code(6)*(2^2)*Interval+(2^1)*Interval<detas;
code(8)=2^(Tribal+2)+code(5)*(2^3)*Interval+code(6)*(2^2)*Interval+code(7)*(2^1)*Interval+(2^0)*Interval<detas;
end

2。PCM 解码实现(M函数)

%PCM Decoding
function S=PCMdecoding(Range,code)
deta=Range/2048;
Tribal=bin2dec(num2str(code(2:4)))+1;
if Tribal==1
Interval=1;
else Interval=(2^(Tribal+2))/16;
end
if Tribal==1
S=code(5)*(2^3)*Interval+code(6)*(2^2)*Interval+code(7)*(2^1)*Interval+code(8)*(2^0)*Interval+Interval;
else
S=2^(Tribal+2)+code(5)*(2^3)*Interval+code(6)*(2^2)*Interval+code(7)*(2^1)*Interval+code(8)*(2^0)*Interval+Interval;
end
S=S*deta;

❽ 语音信号PCM编译码 MATLAB程序

% clc
% clear all;
% 产生信号
load handel
x=y(1:20000); %取前20000个采样点
sound(x,Fs);
%PCM编码
x1=x/0.8.*2048;
yy=pcm_encode(x1);
figure;
subplot(2,1,1);
stem(yy(1:80),'.');
title('PCM编码后的波形');
%加噪声
snr=10;
sp=mean(yy.^2);
attn=sp./ 10^(snr/10);
attn = sqrt(attn);
noise=randn(1,length(yy)).*attn;
np=mean(noise.^2);
snr1=10*log10(sp/np);
data=yy+noise;
% data=yy;%不加噪声
subplot(2,1,2);
stem(data(1:80),'.r');
title('PCM加噪声后波形');
%译码
demodata=data>0.5;
zz=pcm_decode(demodata,0.8);
figure;
subplot(2,1,1);
plot(x);
title('原始语音信号');
subplot(2,1,2);
plot(zz);
title('译码后的语音信号');
sound(zz,Fs);
figure;
plot(x,'b');
hold on
plot(zz,'r');
legend('编译码前的语音信号','编译码后的语音信号');
title('编,译码前后的语音信号');

function y = pcm_encode( x )

y=zeros(length(x),8); %存储矩阵(全零)
z=sign(x); %判断x的正负
x=abs(x);%取绝对值

%%段落码判断段区间的取值范围为前开后闭区间
for k=1:length(x)
%符号位的判断
if z(k)>0
y(k,1)=1;
elseif z(k)<0
y(k,1)=0;
end
if x(k)>128 & x(k)<=2048 %在第五段与第八段之间,段位码第一位都为“1”
y(k,2)=1;
end
if (x(k)>32 & x(k)<=128) || (x(k)>512 & x(k)<=2048)
y(k,3)=1; %在第三四七八段内,段位码第二位为“1”
end
if (x(k)>16&x(k)<=32)||(x(k)>64&x(k)<=128)||(x(k)>256&x(k)<=512)||(x(k)>1024&x(k)<=2048)
y(k,4)=1; %在二四六八段内,段位码第三位为“1”
end
end
%段内码判断程序
N=zeros(1,length(x));
for k=1:length(x)
N(k)=y(k,2)*4+y(k,3)*2+y(k,4)+1; %找到x位于第几段
end

a=[0,16,32,64,128,256,512,1024]; %量化间隔
b=[1,1,2,4,8,16,32,64]; %除以16,得到每段的最小量化间隔

for m=1:length(x)
q=ceil((x(m)-a(N(m)))/b(N(m))); %求出在段内的位置
if q==0
y(m,(5:8))=[0,0,0,0]; %如果输入为零则输出“0”
else k=num2str(dec2bin(q-1,4)); %编码段内码为二进制
y(m,5)=str2num(k(1));
y(m,6)=str2num(k(2));
y(m,7)=str2num(k(3));
y(m,8)=str2num(k(4));
end
end
%将N行8列矩阵转换为1行8*N列的矩阵
y=y';
y=reshape(y,1,length(x)*8);
end

function x=pcm_decode(y,max)

%将1行8*N列的矩阵转换为N行8列矩阵
y=reshape(y,8,length(y)/8);
y=y';
%PCM译码
n=size(y,1); %求出输入码组的个数
a=[0,16,32,64,128,256,512,1024]; %段落起点值
b=[1,1,2,4,8,16,32,64]; %每段的最小量化间隔

for k=1:n
t1=y(k,1); %取符号
t2=y(k,2)*4+y(k,3)*2+y(k,4)+1; %判断段落位置
t3=y(k,5)*8+y(k,6)*4+y(k,7)*2+y(k,8); %判断段内位置
if t3==0 %段内码为零时
m(k)=(a(t2)+1+0.5*b(t2))/2048*max;
else
m(k)=(a(t2)+b(t2)*t3+0.5*b(t2))/2048*max; %还原出量化后的电平值
end
%判断符号位
if t1==0
x(k)=-m(k);
else
x(k)=m(k);
end
end
end

热点内容
MAC账户登录如何进入忘记密码 发布:2024-05-07 08:14:52 浏览:670
相机存储卡要求格式化 发布:2024-05-07 08:08:44 浏览:15
十一代思域哪个配置划算 发布:2024-05-07 07:59:12 浏览:351
鸿蒙系统和安卓系统哪个大 发布:2024-05-07 07:46:37 浏览:622
安卓平台用什么虚拟机 发布:2024-05-07 07:44:14 浏览:246
ta栅格算法 发布:2024-05-07 07:03:23 浏览:802
符号源码 发布:2024-05-07 06:26:09 浏览:707
玩hypixel服务器ip地址要什么版本 发布:2024-05-07 06:22:50 浏览:62
代码为什么要编译 发布:2024-05-07 06:22:48 浏览:495
java面试复习 发布:2024-05-07 06:01:15 浏览:658