数字信号处理matlab实验报告,数字信号处理,matlab实验报告

41528d3028836879cd698677c3999917.gif数字信号处理,matlab实验报告

Matlab实验报告 实验一: 1. 实验Matlab代码: N=25; Q=0.9+0.3*j; WN=exp(-2*j*pi/N); x=zeros(25,1); at long; %长整型科学计数 for k0=1:25 x(k0,1)=Q^(k0-1); end; for k1=1:25; X1(k1,1)=(1-Q^N)/(1-Q*WN^(k1-1)); end; X1; X2=fft(x,32); subplot(3,1,1);stem(abs(X1), b. );axis([0,35,0,15]);title( N=25,ular );xlabel( n ); subplot(3,1,2);stem(abs(X2), g. );axis([0,35,0,15]);title( N=32, FFT );xlabel( n ); for(a=1:25) X3(a)=X1(a)-X2(a) end; subplot(3,1,3);stem(abs(X3), r. );title( difference );xlabel( n ); 实验结果如图: 实验结论:可以看出基2时间抽选的FFT算法与利用公式法所得到的DFT结果稍有偏差,但不大,在工程上可以使用计算机利用FFT处理数据。 2. 实验Matlab代码: N = 1000; % Length of DFT n = [0:1:N-1]; xn = 0.001*cos(0.45*n*pi)+sin(0.3*n*pi)-cos(0.302*n*pi-pi/4); Xk = fft(xn,N); k=[0:1:N-1]; subplot(5,1,1); stem(k,abs(Xk(1:1:N))); title( DFT x(n) );xlabel( k ); axis([140,240,0,6]) subplot(5,1,2);stem(k, abs(Xk(1:1:N)), r );%画出sin(0.3npi)-cos(0.302npi-pi/4) axis([140,160,0,6]); title( sin(0.3*pi*n)-cos(0.302*pi*n) ); xlabel( k ); subplot(5,1,3);stem(k, 1000*abs(Xk(1:1:N)), g );%画出0.001*cos(0.45npi) axis([220,230,0,6]); title( cos(0.45*pi*n) ); xlabel( k ); subplot(5,1,4);stem(k,0.01*abs(Xk(1:1:N)), k );%画 %sin(0.3npi)-cos(0.302npi-pi/4) axis([140,160,0,6]); title( sin(0.3*pi*n)-cos(0.302*pi*n) ); xlabel( k ); subplot(5,1,5);stem(k, 10*abs(Xk(1:1:N)), m );%画出0.001*cos(0.45npi) axis([220,230,0,6]); title( cos(0.45*pi*n) ); xlabel( k ); 实验结果如图: 实验结论: 由上图及过程可知,当DFT变换长度为1000时所得到的谱线非常理想。由此可知当DFT变换长度N为多个数字频率公倍数时(即数字频率正好位于子带的中心频率上时),得到理想的谱线。 实验二: 实验Matlab代码: num=( please your phone number: , s ); % 输入电话号码 len=length(num); %电话号码长度 xx=[]; %时域信号 key=[49,50,51,65;52,53,54,66;55,56,57,67;42,48,35,68]; % DTMF表中的16个ASCII码 frow=[697,770,852,941]; % 行频率 fcol=[1209,1336,1477,1633]; % 列频率 for a=1:len %循环len次 for row=1:4; for col=1:4; if num(a)==key(row,col); break; end % 检测列号 end if num(a)==key(row,col); break, end % 检测行号 end n=1:400; %每个号码在时域中所占长度 fs=8000; %取样频率 x=sin(2*pi*n*frow(row)/fs) + sin(2*pi*n*fcol(col)/fs); %生成一个号码的信号 x=[x,zeros(1,400)]; %加一半时间的静音 xx=[xx x]; % 与之前信号连接 end sound(xx); % 发声 wavwrite(xx, C:\Users\MATLAB\sound ) %生成文件 subplot(2,1,1); plot(xx); title( 时域波形 ) XX=fft(xx); XXX=abs(XX); subplot(2,1,2); kk=(1:len*800)*len*fs/800; plot(kk,XXX); title( 频谱波形 ); 实验结果如图: 结果分析: 时域上是11位的电话号码在不同时间的波形,每个信号占400点,静音400点。 频域上可大致看到7个峰值,是因为电话号码中没有列频率最后一列的频率值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值