1、程序清单及波形显示:clc;close all;clear all;%=内容 1:调用 filter 解差分方程,由系统对 u(n)的响应判断稳定性=A=1,-0.9;B=0.05,0.05; %系统差分方程系数向量 B 和 Ax1n=1 1 1 1 1 1 1 1 zeros(1,50); %产生信号 x1(n)=R8(n)x2n=ones(1,128); %产生信号 x2(n)=u(n)y1n=filter(B,A,x1n); %求系统对 x1(n)的响应 y1(n)n=0:length(y1n)-1;subplot(2,2,1);stem(n,y1n,.); title(a) 系统对 R
2、8(n)的响应 y1(n);xlabel(n);ylabel(y1(n);y2n=filter(B,A,x2n); %求系统对 x2(n)的响应 y2(n)n=0:length(y2n)-1;subplot(2,2,2);stem(n,y2n,.); title(b) 系统对 u(n)的响应 y2(n);xlabel(n);ylabel(y2(n);hn=impz(B,A,58); %求系统单位脉冲响应 h(n)n=0:length(hn)-1;subplot(2,2,3);y=hn;stem(n,hn,.); title(c) 系统单位脉冲响应 h(n);xlabel(n);ylabel(h
3、(n);0 20 40 6000.20.40.60.8 (a) 三三三R8(n)三三三y1(n)ny1(n)0 50 100 15000.51 (b) 三三三u(n)三三三y2(n)ny2(n)0 20 40 6000.050.1 (c) 三三三三三三三三h(n)nh(n)%=内容 2:调用 conv 函数计算卷积 =x1n=1 1 1 1 1 1 1 1 ; %产生信号 x1(n)=R8(n)h1n=ones(1,10); h2n=1 2.5 2.5 1 ;y21n=conv(h1n,x1n); y22n=conv(h2n,x1n);figure(2)n=0:length(h1n)-1;su
4、bplot(2,2,1);stem(n,h1n); title(d) 系统单位脉冲响应 h1n);xlabel(n);ylabel(h1(n);n=0:length(y21n)-1;subplot(2,2,2);stem(n,y21n); title(e) h1(n)与 R8(n)的卷积 y21n);xlabel(n);ylabel(y21(n);n=0:length(h2n)-1;subplot(2,2,3);stem(n,h2n); title(f) 系统单位脉冲响应 h2n);xlabel(n);ylabel(h2(n);n=0:length(y22n)-1;subplot(2,2,4)
5、;stem(n,y22n); title(g) h2(n)与 R8(n)的卷积 y22n);xlabel(n);ylabel(y22(n);0 5 1000.51 (d) 三三三三三三三三h1nnh1(n)0 5 10 15 2002468 (e) h1(n)三R8(n)三三三y21nny21(n)0 1 2 30123 (f) 三三三三三三三三h2nnh2(n)0 5 1002468 (g) h2(n)三R8(n)三三三y22nny22(n)%=内容 3:谐振器分析=un=ones(1,256); %产生信号 u(n)n=0:255;xsin=sin(0.014*n)+sin(0.4*n);
6、 %产生正弦信号A=1,-1.8237,0.9801;B=1/100.49,0,-1/100.49; %系统差分方程系数向量 B 和 Ay31n=filter(B,A,un); %谐振器对 u(n)的响应 y31(n)y32n=filter(B,A,xsin); %谐振器对 u(n)的响应 y31(n)figure(3)n=0:length(y31n)-1;subplot(2,1,1);stem(n,y31n,.); title(h) 谐振器对 u(n)的响应 y31n);xlabel(n);ylabel(y31(n);n=0:length(y32n)-1;subplot(2,1,2);ste
7、m(n,y32n,.); title(i) 谐振器对正弦信号的响应 y32n);xlabel(n);ylabel(y32(n);0 50 100 150 200 250 300-0.0500.05 (h) 三三三三 u(n)三三三 y31nny31(n)0 50 100 150 200 250 300-1-0.500.51 (i) 三三三三三三三三三三三 y32nny32(n)程序清单及波形显示:% DTMF双频拨号信号产生6位电话号码%clear all;clc;tm=1,2,3,65;4,5,6,66;7,8,9,67;42,0,35,68; % DTMF信号代表的16个数N=205;K=
8、18,20,22,24,31,34,38,42;f1=697,770,852,941; % 行频率向量f2=1209,1336,1477,1633; % 列频率向量TN=input(键入 6位电话号码= ); % 输入6位数字TNr=0; %接收端电话号码初值为零for l=1:6;d=fix(TN/10(6-l)TN=TN-d*10(6-l);for p=1:4;for q=1:4;if tm(p,q)=abs(d); break,end % 检测码相符的列号qendif tm(p,q)=abs(d); break,end % 检测码相符的行号pendn=0:1023; % 为了发声,加长序
9、列x = sin(2*pi*n*f1(p)/8000) + sin(2*pi*n*f2(q)/8000);% 构成双频信号sound(x,8000); % 发出声音pause(0.1)% 接收检测端的程序X=goertzel(x(1:205),K+1); % 用Goertzel算法计算八点DFT样本val = abs(X); % 列出八点DFT向量subplot(3,2,l);stem(K,val,.);grid;xlabel(k);ylabel(|X(k)|) % 画出DFT(k)幅度axis(10 50 0 120)limit = 80; %for s=5:8;if val(s) limi
10、t, break, end % 查找列号endfor r=1:4;if val(r) limit, break, end % 查找行号endTNr=TNr+tm(r,s-4)*10(6-l);enddisp(接收端检测到的号码为:) % 显示接收到的字符disp(TNr)显示结果:键入6位电话号码= 123456d = 1d = 2d = 3d = 4d = 5d = 6接收端检测到的号码为:12345610 20 30 40 50050100k|X(k)|10 20 30 40 50050100k|X(k)|10 20 30 40 50050100k|X(k)|10 20 30 40 500
11、50100k|X(k)|10 20 30 40 50050100k|X(k)|10 20 30 40 50050100k|X(k)|% DTMF 双频拨号信号产生 8 位电话号码%clear all;clc;tm=1,2,3,65;4,5,6,66;7,8,9,67;42,0,35,68; % DTMF 信号代表的 16 个数N=205;K=18,20,22,24,31,34,38,42;f1=697,770,852,941; % 行频率向量f2=1209,1336,1477,1633; % 列频率向量TN=input(键入 8 位电话号码 = ); % 输入 8 位数字TNr=0; %接收端
12、电话号码初值为零for l=1:8;d=fix(TN/10(8-l)TN=TN-d*10(8-l);for p=1:4;for q=1:4;if tm(p,q)=abs(d); break,end % 检测码相符的列号 qendif tm(p,q)=abs(d); break,end % 检测码相符的行号 pendn=0:1023; % 为了发声,加长序列x = sin(2*pi*n*f1(p)/8000) + sin(2*pi*n*f2(q)/8000);% 构成双频信号sound(x,8000); % 发出声音pause(0.1)% 接收检测端的程序X=goertzel(x(1:205),
13、K+1); % 用 Goertzel 算法计算八点 DFT 样本val = abs(X); % 列出八点 DFT 向量subplot(4,2,l);stem(K,val,.);grid;xlabel(k);ylabel(|X(k)|) % 画出 DFT(k)幅度axis(10 50 0 120)limit = 80; %for s=5:8;if val(s) limit, break, end % 查找列号endfor r=1:4;if val(r) limit, break, end % 查找行号endTNr=TNr+tm(r,s-4)*10(8-l);enddisp(接收端检测到的号码为:
14、) % 显示接收到的字符disp(TNr)显示结果:键入 8 位电话号码= 12345678d = 1d = 2d = 3d = 4d = 5d = 6d = 7d = 8接收端检测到的号码为:1234567810 20 30 40 50050100k|X(k)|10 20 30 40 50050100k|X(k)|10 20 30 40 50050100k|X(k)|10 20 30 40 50050100k|X(k)|10 20 30 40 50050100k|X(k)|10 20 30 40 50050100k|X(k)|10 20 30 40 50050100k|X(k)|10 20
15、30 40 50050100k|X(k)|程序清单及波形显示:% 时域采样理论验证程序Tp=64/1000; %观察时间 Tp=64 微秒Fs=1000;T=1/Fs; M=Tp*Fs;n=0:M-1;t=n*T;A=444.128;alph=pi*50*20.5;omega=pi*50*20.5;xat=A*exp(-alph*t).*sin(omega*t);Xk=T*fft(xat,M); %M 点 FFTxat)subplot(3,2,1); stem(n,xat,.); xlabel(n);ylabel(x1(n); title(a) Fs=1000Hz);k=0:M-1;fk=k/
16、Tp;subplot(3,2,2);plot(fk,abs(Xk);title(a) T*FTxa(nT),Fs=1000Hz);xlabel(omega/hz);ylabel(H1(ejw);axis(0,Fs,0,1.2*max(abs(Xk);Fs=300;T=1/Fs; M=Tp*Fs;n=0:M-1;t=n*T;A=444.128;alph=pi*50*20.5;omega=pi*50*20.5;xat=A*exp(-alph*t).*sin(omega*t);Xk=T*fft(xat,M); %M 点 FFTxat)subplot(3,2,3); stem(n,xat,.); xl
17、abel(n);ylabel(x2(n); title(b) Fs=300Hz);k=0:M-1;fk=k/Tp;subplot(3,2,4);plot(fk,abs(Xk);title(a) T*FTxa(nT),Fs=300Hz);xlabel(omega/hz);ylabel(H2(ejw);axis(0,Fs,0,1.2*max(abs(Xk);Fs=200;T=1/Fs; M=Tp*Fs;n=0:M-1;t=n*T;A=444.128;alph=pi*50*20.5;omega=pi*50*20.5;xat=A*exp(-alph*t).*sin(omega*t);Xk=T*fft(
18、xat,M); %M 点 FFTxat)subplot(3,2,5); stem(n,xat,.); xlabel(n);ylabel(x3(n); title(c) Fs=200Hz);k=0:M-1;fk=k/Tp;subplot(3,2,6);plot(fk,abs(Xk);title(a) T*FTxa(nT),Fs=200Hz);xlabel(omega/hz);ylabel(H3(ejw);axis(0,Fs,0,1.2*max(abs(Xk)0 20 40 60 80-1000100200nx1(n)(a) Fs=1000Hz0 200 400 600 800 100000.51
19、(a) T*FTxa(nT),Fs=1000Hz/hz(H1(ejw)0 5 10 15 20-1000100200nx2(n)(b) Fs=300Hz0 50 100 150 200 250 30000.51 (a) T*FTxa(nT),Fs=300Hz/hz(H2(ejw)0 2 4 6 8 10 12-1000100200nx3(n)(c) Fs=200Hz0 50 100 150 20000.20.40.60.8(a) T*FTxa(nT),Fs=200Hz/hz(H3(ejw)%频域采样理论验证程序clc;clear;close all;M=27;N=32;n=0:M;xa=0:(
20、M/2); xb= ceil(M/2)-1:-1:0; xn=xa,xb; %产生 M 长三角波序列 x(n)Xk=fft(xn,1024); %1024 点 FFTx(n), 用于近似序列 x(n)的 TFX32k=fft(xn,32) ;%32 点 FFTx(n)x32n=ifft(X32k); %32 点 IFFTX32(k)得到 x32(n)X16k=X32k(1:2:N); %隔点抽取 X32k 得到 X16(K)x16n=ifft(X16k,N/2); %16 点 IFFTX16(k)得到 x16(n)subplot(3,2,2);stem(n,xn,.);title(b) 三角波
21、序列 x(n);xlabel(n);ylabel(x(n);axis(0,32,0,20)k=0:1023;wk=2*k/1024;subplot(3,2,1);plot(wk,abs(Xk);title(a)FTx(n);xlabel(omega/pi);ylabel(|X(ejomega)|);axis(0,1,0,200)k=0:N/2-1;subplot(3,2,3);stem(k,abs(X16k),.);title(c) 16 点频域采样);xlabel(k);ylabel(|X_1_6(k)|);axis(0,8,0,200)n1=0:N/2-1;subplot(3,2,4);s
22、tem(n1,x16n,.);title(d) 16 点 IDFTX_1_6(k);xlabel(n);ylabel(x_1_6(n);axis(0,32,0,20);k=0:N-1;subplot(3,2,5);stem(k,abs(X32k),.);title(e) 32 点频域采样);xlabel(k);ylabel(|X_3_2(k)|);axis(0,16,0,200);n1=0:N-1;subplot(3,2,6);stem(n1,x32n,.);box ontitle(f) 32 点 IDFTX_3_2(k);xlabel(n);ylabel(x_3_2(n);axis(0,32
23、,0,20) 0 10 20 3001020 (b) 三三三三三 x(n)nx(n)0 0.5 10100200 (a)FTx(n)/|X(ej)|0 2 4 6 80100200 (c) 16三三三三三k|X16(k)|0 10 20 3001020(d) 16三 IDFTX16(k)nx16(n)0 5 10 150100200 (e) 32三三三三三k|X32(k)|0 10 20 3001020(f) 32三 IDFTX32(k)nx32(n)程序清单及波形显示:% 用 FFT 对信号作频谱分析clear all;close all%实验内容(1)=x1n=ones(1,4); %产生
24、序列向量 x1(n)=R4(n)M=8;xa=1:(M/2); xb=(M/2):-1:1; x2n=xa,xb; %产生长度为 8 的三角波序列 x2(n)x3n=xb,xa;X1k8=fft(x1n,8); %计算 x1n 的 8 点 DFTX1k16=fft(x1n,16); %计算 x1n 的 16 点 DFTX2k8=fft(x2n,8); %计算 x1n 的 8 点 DFTX2k16=fft(x2n,16); %计算 x1n 的 16 点 DFTX3k8=fft(x3n,8); %计算 x1n 的 8 点 DFTX3k16=fft(x3n,16); %计算 x1n 的 16 点 D
25、FT%以下绘制幅频特性曲线subplot(1,2,1);stem(X1k8,.); %绘制 8 点 DFT 的幅频特性图title(1a) 8 点 DFTx_1(n);xlabel(/);ylabel(幅度 );subplot(1,2,2);stem(X1k16,.); %绘制 16 点 DFT 的幅频特性图title(1b)16 点 DFTx_1(n);xlabel(/);ylabel(幅度);figure(2)subplot(2,2,1);stem(X2k8,.); %绘制 8 点 DFT 的幅频特性图title(2a) 8 点 DFTx_2(n);xlabel(/);ylabel(幅度
26、);subplot(2,2,2);stem(X2k16,.); %绘制 16 点 DFT 的幅频特性图title(2b)16 点 DFTx_2(n);xlabel(/);ylabel(幅度);subplot(2,2,3);stem(X3k8,.); %绘制 8 点 DFT 的幅频特性图title(3a) 8 点 DFTx_3(n);xlabel(/);ylabel(幅度 );subplot(2,2,4);stem(X3k16,.); %绘制 16 点 DFT 的幅频特性图title(3b)16 点 DFTx_3(n);xlabel(/);ylabel(幅度);0 2 4 6 8-2.5-2-1
27、.5-1-0.500.511.522.5 (1a) 8三 DFTx1(n)/三三0 5 10 15 20-2.5-2-1.5-1-0.500.511.522.5 (1b)16三 DFTx1(n)/三三0 2 4 6 8-4-2024(2a) 8三 DFTx2(n)/三三0 5 10 15 20-20-1001020(2b)16三 DFTx2(n)/三三0 2 4 6 8-4-2024(3a) 8三 DFTx3(n)/三三0 5 10 15 20-10-50510(3b)16三 DFTx3(n)/三三%实验内容(2) 周期序列谱分析 =N=8;n=0:N-1; %FFT 的变换区间 N=8x4n
28、=cos(pi*n/4);x5n=cos(pi*n/4)+cos(pi*n/8);X4k8=fft(x4n); %计算 x4n 的 8 点 DFTX5k8=fft(x5n); %计算 x5n 的 8 点 DFTN=16;n=0:N-1; %FFT 的变换区间 N=16x4n=cos(pi*n/4);x5n=cos(pi*n/4)+cos(pi*n/8);X4k16=fft(x4n); %计算 x4n 的 16 点 DFTX5k16=fft(x5n); %计算 x5n 的 16 点 DFTfigure(3)subplot(2,2,1);stem(X4k8,.); %绘制 8 点 DFT 的幅频特
29、性图title(4a) 8 点 DFTx_4(n);xlabel(/);ylabel(幅度);subplot(2,2,3);stem(X4k16,.); %绘制 16 点 DFT 的幅频特性图title(4b)16 点 DFTx_4(n);xlabel(/);ylabel(幅度);subplot(2,2,2);stem(X5k8,.); %绘制 8 点 DFT 的幅频特性图title(5a) 8 点 DFTx_5(n);xlabel(/);ylabel(幅度);subplot(2,2,4);stem(X5k16,.); %绘制 16 点 DFT 的幅频特性图title(5b)16 点 DFTx
30、_5(n);xlabel(/);ylabel(幅度);0 2 4 6 8-1012x 10-15(4a) 8三 DFTx4(n)/三三0 5 10 15 20-4-2024x 10-15(4b)16三 DFTx4(n)/三三0 2 4 6 8-4-2024(5a) 8三 DFTx5(n)/三三0 5 10 15 20-4-2024x 10-15(5b)16三 DFTx5(n)/三三%实验内容(3) 模拟周期信号谱分析 =figure(4)Fs=64;T=1/Fs;N=16;n=0:N-1; %FFT 的变换区间 N=16x6nT=cos(8*pi*n*T)+cos(16*pi*n*T)+cos
31、(20*pi*n*T); %对 x6(t)16 点采样X6k16=fft(x6nT); %计算 x6nT 的 16 点 DFTX6k16=fftshift(X6k16); %将零频率移到频谱中心 Tp=N*T;F=1/Tp; %频率分辨率 Fk=-N/2:N/2-1;fk=k*F; %产生 16 点 DFT 对应的采样点频率(以零频率为中心)subplot(3,1,1);stem(fk,abs(X6k16),.);box on %绘制 8 点 DFT 的幅频特性图title(6a) 16 点|DFTx_6(nT)|);xlabel(f(Hz);ylabel(幅度 );axis(-N*F/2-1,N*F/2-1,0,1.2*max(abs(X6k16)N=32;n=0:N-1; %FFT 的变换区间 N=16x6nT=cos(8*pi*n*T)+cos(16*pi*n*T)+cos(20*pi*n*T); %对 x6(t)32 点采样X6k32=fft(x6nT); %计算 x6nT 的 32 点 DFTX6k32=fftshift(X6k32); %将零频率移到频谱中心 Tp=N*T;F=1/Tp; %频率分辨率 Fk=-N/2:N/2-1;fk=k*F; %产生 16 点 DFT 对应的采样点频率(以零频率为中心)