数字信号处理matlab课程设计_第1页
数字信号处理matlab课程设计_第2页
数字信号处理matlab课程设计_第3页
数字信号处理matlab课程设计_第4页
数字信号处理matlab课程设计_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 信息科学与工程学院 课程设计报告书 课 题: 现代信号处理 班 级: 通信08*班 学 号: * 姓 名: * * 指导教师: 二一 年 九 月 目录一、课程设计目的二、课程设计内容三、课程设计时间安排四、设计原理五、matlab源程序六、系统调试过程中出现的主要问题七、系统调试后的效果图八、作品中存在的不足九、总结十、参考书目现代信号处理课程设计报告一、课程设计目的:1全面复习课程所学理论知识,巩固所学知识重点和难点,将理论与实践很好地结合起来。2提高综合运用所学知识独立分析和解决问题的能力;3熟练使用一种高级语言进行编程实现。二、课程设计内容:(一)信号分析1、编制信号生成程序,产生下述

2、各序列,绘出它们的时域波形 1) 单位抽样序列 2)矩形序列 3) 三角波序列4) 反三角波序列 5)gaussian序列6) 正弦序列 取7)衰减正弦序列 对连续信号进行采,a=50,采样周期t=1ms,即fs=1000hz,f0=62.5,a=100。2. 对上述信号完成下列信号分析 1)对三角波序列和反三角波序列,作n=8点的fft,观察比较它们的幅频特性,说明它们有什么异同?绘出两序列及其它们的幅频特性曲线。 在和的尾部补零,作n=16点的fft,观察它们的幅频特性发生了什么变化?分析说明原因。2)、观察高斯序列,固定信号中的参数p=8,令q分别等于2,4,8,观察它们的时域和幅频特性

3、,了解当q取不同值时,对信号序列的时域幅频特性的影响;固定q=8,令p分别等于8,13,14,观察参数p变化对信号序列的时域及幅频特性的影响,观察p等于多少时,会发生明显的泄漏现象,混叠是否也随之出现?记录实验中观察到的现象,绘出相应的时域序列和幅频特性曲线。3)对于正弦序列x6 (n),取数据长度n分别等于8,16,32,分别作n点fft,观察它们的的时域和幅频特性,说明它们的差别 ,简要说明原因。4)、观察衰减正弦序列的时域和幅频特性,绘出幅频特性曲线,改变采样频率fs,使fs=300hz, 观察此时的频谱的形状和谱峰出现位置?说明产生现象的原因。3设有一连续时间信号s(t),其由20hz

4、、220hz和750hz的正弦信号叠加而成,分析确定采样频率及数据分析长度,计算并绘出信号的频谱,指出各个频率份量。 (二)、数字滤波器的设计与实现 设计和实现iir或fir数字滤波器: 要求:输入数字滤波器的滤波指标,包括通带截止频率,通带最大衰减,阻带截止频率,阻带最小衰减。设计出相应的数字滤波器。显示得到的滤波器的系数和阶数,求出系统的单位脉冲响应h(n)。并画出设计得到的滤波器的幅频特性图(要有坐标标度)和相频特性。 1对于iir数字滤波器:使用双线性变换法。可选用bw型、cb型和椭圆型等滤波器类型来进行设计2对于fir数字滤波器:要对多种窗口(三种及以上)、不同阶数设计结果进行分析比

5、较。(三)、综合应用对于给出的任意一段语音信号,进行分析处理。1、读出语音信号,并显示语音信号的时域波形,然后对读出的信号进行fft变换,得到信号的频谱特性。2、分析其频谱特性,应用设计的滤波器将主要的频率分量分离出来。3、回放此语音信号,感觉滤波前后的声音有什么变化三、课程设计时间安排第二周周一、周三下午,周二、周四上午; 第三周周一、周三上午,周二、周四上午;第三周周三、周四检查程序。四、设计原理系统总体设计: 下拉菜单设计和菜单式设计。第一题中,主要通过下拉式菜单构成界面。单击下拉菜单中的选项选择序列,得到相应图像。malab中用两个参量x和n表示有限长序列x(n),x是x(n)的向量样

6、值,n是位置向量,n于x长度相等,向量n的第m个元素n(m)表示样值x(m)的位置。位置向量n一般都是单位增向量,产生语句为:n=ns:nf;其中ns表示序列x(n)的起始点,nf表示序列x(n)的终点。用matlab表示序列与图形表示法是等价的。以位置向量n为横坐标,以序列样值向量x为纵坐标,就可以绘制出序列x(n)的波形图。使用双线性变换法设计iir数字滤波器:函数bilinear()调用格式:bz,az=bilinear(b,a,fs)其中bw型:butter()调用格式:b,a=butter(n,wn,ftype)z,p,k=butter(n.wn,ftype)其中: ftype: 滤

7、波器类型: high :高通 stop: 带阻 缺省:低通或带通回调函数:global fp;global fs;global rs;global rp;global fs;综合应用:通过回调函数将原声音通过第二题中的数字滤波器处理后得到需要的声音效果。其中,读出声音的语句为:x1,fs=wavread(c:documents and settingsadministrator桌面door.wav); %读取语音信号的数据,赋给变量x1五、matlab源程序 源程序 程序一:switch v case 1 subplot(1,1,1); case 2 subplot(1,1,1); x=zer

8、os(1,5),ones(1,1),zeros(1,6);n=-5:6; stem(n,x,.);axis(-10,10,-2,2); case 3 subplot(1,1,1); x=zeros(1,5),ones(1,5),zeros(1,5);n=-7:7; stem(n,x,.);axis(-7,10,-5,5); case 4 subplot(1,1,1); n1=0:3;x1=n1+1;n2=4:7;x2=8-n2; stem(n1,n2,x1,x2,.);axis(-1,9,0,7); case 5 subplot(1,1,1); n1=0:3;x1=4-n1;n2=4:7;x2

9、=n2-3; stem(n1,n2,x1,x2,.);axis(-1,9,0,10); case 6 subplot(1,1,1); n=0:15;p=3;q=7;x=exp(-1*(n-p).2)/q); stem(n,x,.);axis(0,15,0,1.5); case 7 subplot(1,1,1); fs=64;n=0:15;t=n/fs;x=sin(16*pi*t); stem(t,x,.);axis(0,0.5,-2,2); case 8 subplot(1,1,1); a=50;t=1/1000;f0=62.5;a=100;n=1:100; x=a*sin(2*pi*f0*n

10、*t).*exp(-1)*a*n*t); stem(n,x,.);axis(-7,100,-40,40); case 9 subplot(1,1,1); x1=1 2 3 4 4 3 2 1;subplot(2,2,1);stem(fft(x1,8),.);title(8点三角波的fft幅频特性图); x2=4 3 2 1 1 2 3 4;subplot(2,2,2);stem(fft(x2,8),.);title(8点反三角波的fft幅频特性图); x3=1 2 3 4 4 3 2 1 0 0 0 0 0 0 0 0;subplot(2,2,3);stem(fft(x3,16),.);tit

11、le(16点三角波的fft幅频特性); x4=4 3 2 1 1 2 3 4 0 0 0 0 0 0 0 0;subplot(2,2,4);stem(fft(x4,16),.);title(16点反三角波的fft幅频特性); case 10 subplot(1,1,1); n1=0:15;p=8;q=2;x1=exp(-1*(n1-p).2/q);subplot(5,2,1);stem(n1,x1,.);title(高斯序列a的时域特性曲线); n1=0:15;p=8;q=2;x1=exp(-1*(n1-p).2/q);subplot(5,2,2);stem(fft(x1,16),.);tit

12、le(高斯序列a在16点的fft幅频特性曲线); n2=0:15;p=8;q=4;x2=exp(-1*(n2-p).2/q);subplot(5,2,3);stem(n2,x2,.);title(高斯序列b的时域特性曲线); n2=0:15;p=8;q=4;x2=exp(-1*(n2-p).2/q);subplot(5,2,4);stem(fft(x2,16),.);title(高斯序列b在16点的fft幅频特性曲线); n3=0:15;p=8;q=8;x3=exp(-1*(n3-p).2/q);subplot(5,2,5);stem(n3,x3,.);title(高斯序列c的时域特性曲线);

13、 n3=0:15;p=8;q=8;x3=exp(-1*(n3-p).2/q);subplot(5,2,6);stem(fft(x3,16),.);title(高斯序列c在16点的fft幅频特性曲线); n4=0:15;p=13;q=8;x4=exp(-1*(n4-p).2/q);subplot(5,2,7);stem(n4,x4,.);title(高斯序列d的时域特性曲线); n4=0:15;p=13;q=8;x4=exp(-1*(n4-p).2/q);subplot(5,2,8);stem(fft(x4,16),.);title(高斯序列d在16点的fft幅频特性曲线); n5=0:15;p

14、=14;q=8;x5=exp(-1*(n5-p).2/q);subplot(5,2,9);stem(n5,x5,.);title(高斯序列e的时域特性曲线); n5=0:15;p=14;q=8;x5=exp(-1*(n5-p).2/q);subplot(5,2,10);stem(fft(x5,16),.);title(高斯序列e在16点的fft幅频特性曲线); case 11 subplot(1,1,1); t=1/64;t1=(0:15)*t;x1=sin(16*pi*t1);subplot(2,3,1);stem(t1,x1,.);title(正弦序列的时域特性曲线); t=1/64;t1

15、=(0:15)*t;x1=sin(16*pi*t1);subplot(2,3,2);stem(fft(x1,8),.);title(正弦序列在8点的fft幅频特性曲线); t=1/64;t2=(0:15)*t;x2=sin(16*pi*t2);subplot(2,3,3);stem(t2,x2,.);title(正弦序列的时域特性曲线); t=1/64;t2=(0:15)*t;x2=sin(16*pi*t2);subplot(2,3,4);stem(fft(x2,16),.);title(正弦序列在16点的fft幅频特性曲线); t=1/64;t3=(0:32)*t;x3=sin(16*pi*

16、t3);subplot(2,3,5);stem(t3,x3,.);title(正弦序列的时域特性曲线); t=1/64;t3=(0:32)*t;x3=sin(16*pi*t3);subplot(2,3,6);stem(fft(x3,32),.);titile(正弦序列在32点的fft幅频特性曲线); case 12 subplot(1,1,1); clear a=50;t1=1/1000;f=62.5;a=100;n1=1:100;x1=a*exp(-1*a*n1*t1).*sin(2*pi*f*n1*t1);subplot(2,2,1) stem(n1,x1,.);title(衰减正弦序列f

17、0=1000的时域特性曲线); a=50;t1=1/1000;f=62.5;a=100;n1=1:100;x1=a*exp(-1*a*n1*t1).*sin(2*pi*f*n1*t1);subplot(2,2,2) stem(fft(x1,100),.);title(衰减正弦序列f0=1000的幅频特性曲线); a=50;t2=1/300;f=62.5;a=100;n2=1:100;x2=a*exp(-1*a*n2*t2).*sin(2*pi*f*n2*t2);subplot(2,2,3) ; stem(n2,x2,.);title(衰减正弦序列f0=300的时域特性曲线); a=50;t2=

18、1/300;f=62.5;a=100;n2=1:100;x2=a*exp(-1*a*n2*t2).*sin(2*pi*f*n2*t2);subplot(2,2,4); stem(fft(x2,100),.);title(衰减正弦序列f0=300的幅频特性曲线); case 13 subplot(1,1,1); fs=2500;n=300;n=0:n-1;t=n/fs; fs1=20;fs2=220;fs3=750; x=sin(2*pi*fs1*t)+sin(2*pi*fs2*t)+sin(2*pi*fs3*t); y=fft(x,n);mag=abs(y); f=(0:length(y)-1

19、)*fs/length(y); plot(f(1:n/2),mag(1:n/2); end程序二:% hints: get(hobject,string) returns contents of edit1 as text% str2double(get(hobject,string) returns contents of edit1 as a doubleglobal fsfs = str2double(get(hobject, string);if isnan(density) set(hobject, string, 0); errordlg(input must be a numbe

20、r,error);end% hints: get(hobject,string) returns contents of edit2 as text% str2double(get(hobject,string) returns contents of edit2 as a doubleglobal fpfp = str2double(get(hobject, string);if isnan(density) set(hobject, string, 0); errordlg(input must be a number,error);end% hints: get(hobject,stri

21、ng) returns contents of edit3 as text% str2double(get(hobject,string) returns contents of edit3 as a doubleglobal rsrs = str2double(get(hobject, string);if isnan(density) set(hobject, string, 0); errordlg(input must be a number,error);end% hints: get(hobject,string) returns contents of edit4 as text

22、% str2double(get(hobject,string) returns contents of edit4 as a doubleglobal rprp = str2double(get(hobject, string);if isnan(density) set(hobject, string, 0); errordlg(input must be a number,error);end% hints: get(hobject,string) returns contents of edit5 as text% str2double(get(hobject,string) retu

23、rns contents of edit5 as a doubleglobal fsfs= str2double(get(hobject, string);if isnan(density) set(hobject, string, 0); errordlg(input must be a number,error);end% hints: get(hobject,string) returns contents of edit6 as text% str2double(get(hobject,string) returns contents of edit6 as a doublegloba

24、l fs1fs1 = str2double(get(hobject, string);if isnan(density) set(hobject, string, 0); errordlg(input must be a number,error);end% hints: get(hobject,string) returns contents of edit7 as text% str2double(get(hobject,string) returns contents of edit7 as a doubleglobal fs2fs2 = str2double(get(hobject,

25、string);if isnan(density) set(hobject, string, 0); errordlg(input must be a number,error);endfunction edit8_callback(hobject, eventdata, handles)% hints: get(hobject,string) returns contents of edit8 as text% str2double(get(hobject,string) returns contents of edit8 as a doubleglobal fp1fp1 = str2dou

26、ble(get(hobject, string);if isnan(density) set(hobject, string, 0); errordlg(input must be a number,error);end% hints: get(hobject,string) returns contents of edit9 as text% str2double(get(hobject,string) returns contents of edit9 as a doubleglobal fp2fp2 = str2double(get(hobject, string);if isnan(d

27、ensity) set(hobject, string, 0); errordlg(input must be a number,error);end% - executes on button press in pushbutton3.function pushbutton3_callback(hobject, eventdata, handles)% hobject handle to pushbutton3 (see gcbo)% eventdata reserved - to be defined in a future version of matlab% handles struc

28、ture with handles and user data (see guidata)global fp;global fs;global rs;global rp;global fs;wp=2*pi*fp;ws=2*pi*fs;nn=128;n,wn=buttord(wp,ws,rp,rs,s)z,p,k=buttap(n);bp,ap=zp2tf(z,p,k);b,a=lp2lp(bp,ap,wn);bz,az=bilinear(b,a,fs)figure(1);freqz(bz,az,nn,fs)y,t=impz(bz,az,101);figure(2);stem(t,y,.)% -

29、 executes on button press in pushbutton4.function pushbutton4_callback(hobject, eventdata, handles)% hobject handle to pushbutton4 (see gcbo)% eventdata reserved - to be defined in a future version of matlab% handles structure with handles and user data (see guidata)global fp;global fs;global rs;glo

30、bal rp;global fs;wp=2*pi*fp;ws=2*pi*fs;nn=128;n,wn=buttord(wp,ws,rp,rs,s)z,p,k=buttap(n);bp,ap=zp2tf(z,p,k);b,a=lp2hp(bp,ap,wn);bz,az=bilinear(b,a,fs)figure(1);freqz(bz,az,nn,fs)y,t=impz(bz,az,101);figure(2);stem(t,y,.)% - executes on button press in pushbutton5.function pushbutton5_callback(hobject

31、, eventdata, handles)% hobject handle to pushbutton5 (see gcbo)% eventdata reserved - to be defined in a future version of matlab% handles structure with handles and user data (see guidata)echo offclearglobal fp1global fp2global fs1global fs2global rpglobal rsglobal fswp1=2*pi*fp1/fs;wp2=2*pi*fp2/fs

32、;ws1=2*pi*fs1/fs;ws2=2*pi*fs2/fs;b=ws2-ws1;w0=sqrt(ws1*ws2);wp=max(abs(wp1),abs(wp2);ws=1;n,wc=buttord(wp,ws,rp,rs,s);num,den=butter(n,wc,s);numt,dent=lp2bs(num,den,w0,b);numd,dend=bilinear(numt,dent,1);w=linspace(0,pi,512);figure(17)freqz(numd,dend,w);y,t=impz(numd,dent,101);figure(18);stem(t,y,.)%

33、 - executes on button press in pushbutton6.function pushbutton6_callback(hobject, eventdata, handles)% hobject handle to pushbutton6 (see gcbo)% eventdata reserved - to be defined in a future version of matlab% handles structure with handles and user data (see guidata)echo offclearglobal fp1global f

34、p2global fs1global fs2global rpglobal rsglobal fswp1=2*pi*fp1/fs;wp2=2*pi*fp2/fs;ws1=2*pi*fs1/fs;ws2=2*pi*fs2/fs;b=ws2-ws1;w0=sqrt(ws1*ws2);wp=max(abs(wp1),abs(wp2);ws=1;n,wc=buttord(wp,ws,rp,rs,s);num,den=butter(n,wc,s);numt,dent=lp2bp(num,den,w0,b);numd,dend=bilinear(numt,dent,1);w=linspace(0,pi,5

35、12);figure(17)freqz(numd,dend,w);y,t=impz(numd,dent,101);figure(18);stem(t,y,.)% - executes on button press in pushbutton7.function pushbutton7_callback(hobject, eventdata, handles)% hobject handle to pushbutton7 (see gcbo)% eventdata reserved - to be defined in a future version of matlab% handles s

36、tructure with handles and user data (see guidata)x1,fs=wavread(c:documents and settingsadministrator桌面door.wav);%读取语音信号的数据,赋给变量x1sound(x1,fs); fs %播放语音信号y1=fft(x1,1024); %对信号做1024点fft变换f=fs*(0:511)/1024;figure(1)plot(x1) %做原始语音信号的时域图形title(原始语音信号);xlabel(time n);ylabel(fuzhi n);figure(2)freqz(x1) %绘

37、制原始语音信号的频率响应图title(频率响应图)figure(3)subplot(2,1,1);plot(abs(y1(1:512) %做原始语音信号的fft频谱图title(原始语音信号fft频谱)subplot(2,1,2);plot(f,abs(y1(1:512);title(原始语音信号频谱)xlabel(hz);ylabel(fuzhi);ylabel(fuzhi);% - executes on button press in pushbutton8.function pushbutton8_callback(hobject, eventdata, handles)% hobje

38、ct handle to pushbutton8 (see gcbo)% eventdata reserved - to be defined in a future version of matlab% handles structure with handles and user data (see guidata)global fpglobal fsglobal rpglobal rsglobal fs;x1,fs=wavread(c:documents and settingsadministrator桌面door.wav);t=0:1/fs:(size(x1)-1)/fs;fswp=

39、2*pi*fp/fs;ws=2*pi*fs/fs;ts=1/fs;wp1=2/ts*tan(wp/2); %将模拟指标转换成数字指标ws1=2/ts*tan(ws/2); n,wn=buttord(wp1,ws1,rp,rs,s) %选择滤波器的最小阶数z,p,k=buttap(n); %创建butterworth模拟滤波器bap,aap=zp2tf(z,p,k);b,a=lp2lp(bap,aap,wn); bz,az=bilinear(b,a,fs); h,w=freqz(bz,az); figure(1)plot(w*fs/(2*pi),abs(h)gridxlabel(频率hz)yla

40、bel(频率响应幅度)title(butterworth)f1=filter(bz,az,x1);figure(2)subplot(2,1,1)plot(t,x1); title(滤波前的时域波形);subplot(2,1,2)plot(t,f1); title(滤波后的时域波形);sound(f1,22050); f0=fft(f1,1024);f=fs*(0:511)/1024;figure(3)y2=fft(x1,1024);subplot(2,1,1);plot(f,abs(y2(1:512); title(滤波前的频谱)xlabel(hz);ylabel(fuzhi);subplot

41、(2,1,2)f1=plot(f,abs(f0(1:512); title(滤波后的频谱)xlabel(hz);ylabel(fuzhi);% - executes on button press in pushbutton9.function pushbutton9_callback(hobject, eventdata, handles)% hobject handle to pushbutton9 (see gcbo)% eventdata reserved - to be defined in a future version of matlab% handles structure

42、with handles and user data (see guidata)global fpglobal fsglobal rpglobal rsglobal fsx1,fs=wavread(c:documents and settingsadministrator桌面door.wav);t=0:1/fs:(size(x1)-1)/fs;fswp=2*pi*fp/fs;ws=2*pi*fs/fs;ts=1/fs;wp1=2/ts*tan(wp/2); %将模拟指标转换成数字指标ws1=2/ts*tan(ws/2); n,wn=buttord(wp1,ws1,rp,rs,s) %选择滤波器

43、的最小阶数z,p,k=buttap(n); %创建butterworth模拟滤波器bap,aap=zp2tf(z,p,k);b,a=lp2hp(bap,aap,wn); bz,az=bilinear(b,a,fs); h,w=freqz(bz,az); figure(1)plot(w*fs/(2*pi),abs(h)gridxlabel(频率hz)ylabel(频率响应幅度)title(butterworth)f1=filter(bz,az,x1);figure(2)subplot(2,1,1)plot(t,x1); title(滤波前的时域波形);subplot(2,1,2)plot(t,f

44、1); title(滤波后的时域波形);sound(f1,22050); f0=fft(f1,1024);f=fs*(0:511)/1024;figure(3)y2=fft(x1,1024);subplot(2,1,1);plot(f,abs(y2(1:512); title(滤波前的频谱)xlabel(hz);ylabel(fuzhi);subplot(2,1,2)f1=plot(f,abs(f0(1:512); title(滤波后的频谱)xlabel(hz);ylabel(fuzhi);% - executes on button press in pushbutton10.functio

45、n pushbutton10_callback(hobject, eventdata, handles)% hobject handle to pushbutton10 (see gcbo)% eventdata reserved - to be defined in a future version of matlab% handles structure with handles and user data (see guidata)global fp1global fp2global fs1global fs2global rpglobal rsx1,fs=wavread(c:docum

46、ents and settingsadministrator桌面door.wav);t=0:1/fs:(size(x1)-1)/fs;wp1=2*pi*fp1/fs;wp2=2*pi*fp2/fs;ws1=2*pi*fs1/fs;ws2=2*pi*fs2/fs;b=ws2-ws1;w0=sqrt(ws1*ws2);wp=max(abs(wp1),abs(wp2);ws=1;n,wc=buttord(wp,ws,rp,rs,s)num,den=butter(n,wc,s);numt,dent=lp2bs(num,den,w0,b);numd,dend=bilinear(numt,dent,1);

47、w=linspace(0,pi,512);figure(3)h,w=freqz(numd,dend,w); figure(1)plot(w*fs/(2*pi),abs(h)gridxlabel(频率hz)ylabel(频率响应幅度)title(butterworth)f1=filter(numd,dend,x1);figure(2)subplot(2,1,1)plot(t,x1) title(滤波前的时域波形);subplot(2,1,2)plot(t,f1); title(滤波后的时域波形);sound(f1,22050); f0=fft(f1,1024);f=fs*(0:511)/1024

48、;figure(3)y2=fft(x1,1024);subplot(2,1,1);plot(f,abs(y2(1:512); title(滤波前的频谱)xlabel(hz);ylabel(fuzhi);subplot(2,1,2)f1=plot(f,abs(f0(1:512); title(滤波后的频谱)xlabel(hz);ylabel(fuzhi);% - executes on button press in pushbutton11.function pushbutton11_callback(hobject, eventdata, handles)% hobject handle to pushbutton11 (see gcbo)% eventdata reserved - to be defined in a future version of matlab% handles structure with handles and user data (see guidata)global fp1global fp2global fs1global fs2global rpglobal rsx1,fs=wavread(c:docume

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论