西电-数字信号处理-第二次上机实验

合集下载

西电DSP上机实验报告2

西电DSP上机实验报告2

DSP实验报告及大作业学院:电子信息工程班级:学号:姓名:实验一 VISUAL DSP++的使用入门一、实验目的1、熟悉VISUAL DSP++的开发环境。

针对ADSP-21065L SHARC DSP,利用几个用C、C++和汇编语言写成的简单例子来描述VISUAL DSP+十编程环境和调试器(debugger)的主要特征和功能。

2、对于运行在其它类型SHARC处理器的程序只需对其链接描述文件(.LDF)做一些小的变化,用于ADSP-21065L硬件仿真。

二、实验内容实验一:启动Visual DSP++,建立一个用C源代码的工程(Project),同时用调试器来评估用C 语言所编写代码的性能;实验二:创立一个新的工程,修改源码来调用一个汇编(asm)程序,重新编译工程,用调试器来评估用汇编语言所写程序的性能;实验三:利用调试器的绘图(plot)功能来图形显示一个卷积算法中的多个数据的波形;实验四:利用调试器的性能统计功能(Statistical profile来检查练习三中卷积算法的效率。

利用所收集到的性能统计数据就能看出算法中最耗时的地方。

三、实验步骤及结果练习一:1、进入 Visual DSP++,显示Visual DSP++的集成开发和调试环境窗口。

选择菜单中的Session\New Session\SHARK\ADSP-21065L SHARK processing Simulator.此过程为将要编译运行的程序建立了一个Session.2、选择菜单File 中Open 打开Project\E:\float\unit_1\dot_product_c \dotprodc.dpj。

(注:练习中将float压缩包解压与E盘)3、在菜单 Project中选择 Build Project来对工程进行编译。

在本例子中,编译器会检测到一个未定义的错误,显示为:“.\dotprod_main.c”,line 115:error #20:identifier“itn”is undefined itn i;双击该行文字,光标会自动定位出错行,再该行中将“itn”改为“int”,重新编译后没有错误。

西安电子科技大学数字信号处理上机作业

西安电子科技大学数字信号处理上机作业

数字信号处理MATLAB上机作业M 2.21.题目The square wave and the sawtooth wave are two periodic sequences as sketched in figure ing the function stem. The input data specified by the user are: desired length L of the sequence, peak value A, and the period N. For the square wave sequence an additional user-specified parameter is the duty cycle, which is the percent of the period for which the signal is positive. Using this program generate the first 100 samples of each of the above sequences with a sampling rate of 20 kHz ,a peak value of 7, a period of 13 ,and a duty cycle of 60% for the square wave.2.程序% 用户定义各项参数参数A = input('The peak value =');L = input('Length of sequence =');N = input('The period of sequence =');FT = input('The desired sampling frequency =');DC = input('The square wave duty cycle = ');% 产生所需要的信号t = 0:L-1;T = 1/FT;x = A*sawtooth(2*pi*t/N);y = A*square(2*pi*(t/N),DC);% Plotsubplot(2,1,1)stem(t,x);ylabel('幅度');xlabel('n');subplot(2,1,2)stem(t,y);ylabel('幅度');xlabel('n');3.结果4.结果分析M 2.41.题目(a)Write a matlab program to generate a sinusoidal sequence x[n]= Acos(ω0 n+Ф) and plot thesequence using the stem function. The input data specified by the user are the desired length L, amplitude A, the angular frequency ω0 , and the phase Фwhere 0<ω0 <pi and 0<=Ф<=2pi. Using this program generate the sinusoidal sequences shown in figure 2.15. (b)Generate sinusoidal sequences with the angular frequencies given in Problem 2.22.Determine the period of each sequence from the plot and verify the result theoretically. 2.程序%用户定义的参数L = input('Desired length = ');A = input('Amplitude = ');omega = input('Angular frequency = ');phi = input('Phase = ');%信号产生n = 0:L-1;x = A*cos(omega*n + phi);stem(n,x);xlabel('n');ylabel('幅度');title(['\omega_{o} = ',num2str(omega)]);3.结果(a)ω0=0ω0=0.1πω0=0.8πω0=1.2π(b)ω0=0.14πω0=0.24πω0=0.34πω0=0.68πω0=0.75π4.结果分析M 2.51.题目Generate the sequences of problem 2.21(b) to 2.21(e) using matlab.2.程序(b)n = 0 : 99;x=sin(0.6*pi*n+0.6*pi);stem(n,x);xlabel('n');ylabel('幅度');(c)n = 0 : 99;x=2*cos(1.1*pi*n-0.5*pi)+2*sin(0.7*pi*n);stem(n,x);xlabel('n');ylabel('幅度');(d)n = 0 : 99;x=3*sin(1.3*pi*n-4*cos(0.3*pi*n+0.45*pi));stem(n,x);xlabel('n');ylabel('幅度');(e)n = 0 : 99;x=5*sin(1.2*pi*n+0.65*pi)+4*sin(0.8*pi*n)-cos(0.8*pi*n);stem(n,x);xlabel('n');ylabel('幅度');(f)n = 0 : 99;x=mod(n,6);stem(n,x);xlabel('n');ylabel('幅度');3.结果(b)(c)(d)(e)(f)4.结果分析M 2.61.题目Write a matlab program to plot a continuous-time sinusoidal signal and its sampled version and verify figure 2.19. You need to use the hold function to keep both plots.2.程序%用户定义的参数fo = input('Frequency of sinusoid in Hz = ');FT = input('Samplig frequency in Hz = ');%产生信号t = 0:0.001:1;g1 = cos(2*pi*fo*t);plot(t,g1,'-')xlabel('时间t');ylabel('幅度')holdn = 0:1:FT;gs = cos(2*pi*fo*n/FT);plot(n/FT,gs,'o');hold off3.结果4.结果分析M 3.11.题目Using program 3_1 determine and plot the real and imaginary parts and the magnitude and phase spectra of the following DTFT for various values of r and θ:G(e jω)=1, 0<r<1.1−2r(cosθ)e−jω+r2e−2jω2.程序%program 3_1%discrete-time fourier transform computatition%k=input('Number of frequency points = ');num=input('Numerator coefficients= ');den=input('Denominator coefficients= ');%computer the frequency responsew=0:pi/k:pi;h=freqz(num,den,w);%plot the frequency responsesubplot(221)plot(w/pi,real(h));gridtitle('real part')xlabel('\omega/\pi');ylabel('Amplitude') subplot(222)plot(w/pi,imag(h));gridtitle('imaginary part')xlabel('\omega/\pi');ylabel('Amplitude') subplot(223)plot(w/pi,abs(h));gridtitle('magnitude spectrum')xlabel('\omega/\pi');ylabel('magnitude') subplot(224)plot(w/pi,angle(h));gridtitle('phase spectrum')xlabel('\omega/\pi');ylabel('phase,radians')3.结果(a)r=0.8 θ=π/6(b)r=0.6 θ=π/34.结果分析M 3.41.题目Using matlab verify the following general properties of the DTFT as listed in Table 3.2:(a) Linearity, (b) time-shifting, (c) frequency-shifting, (d) differentiation-in-frequency, (e) convolution, (f) modulation, and (g) Parseval’s relation. Since all data in matlab have to be finite-length vectors, the sequences to be used to verify the properties are thus restricted to be of finite length.2.程序%先定义两个信号N = input('The length of the sequence = ');k = 0:N-1;%g为正弦信号g = 2*sin(2*pi*k/(N/2));%h为余弦信号h = 3*cos(2*pi*k/(N/2));[G,w] = freqz(g,1);[H,w] = freqz(h,1);%*************************************************************************%% 线性性质alpha = 0.5;beta = 0.25;y = alpha*g+beta*h;[Y,w] = freqz(y,1);figure(1);subplot(211),plot(w/pi,abs(Y));xlabel('\omega/\pi');ylabel('|Y(e^j^\omega)|');title('线性叠加后的频率特性');grid;% 画出Y 的频率特性subplot(212),plot(w/pi,alpha*abs(G)+beta*abs(H));xlabel('\omega/\pi');ylabel('\alpha|G(e^j^\omega)|+\beta|H(e^j^\omega)|');title('线性叠加前的频率特性');grid;% 画出alpha*G+beta*H 的频率特性%*************************************************************************% % 时移性质n0 = 10;%时移10个的单位y2 = [zeros([1,n0]) g];[Y2,w] = freqz(y2,1);G0 = exp(-j*w*n0).*G;figure(2);subplot(211),plot(w/pi,abs(G0));xlabel('\omega/\pi');ylabel('|G0(e^j^\omega)|');title('G0的频率特性');grid;% 画出G0的频率特性subplot(212),plot(w/pi,abs(Y2));xlabel('\omega/\pi');ylabel('|Y2(e^j^\omega)|');title('Y2的频率特性');grid;% 画出Y2 的频率特性%*************************************************************************% % 频移特性w0 = pi/2; % 频移pi/2r=256; %the value of w0 in terms of number of samplesk = 0:N-1;y3 = g.*exp(j*w0*k);[Y3,w] = freqz(y3,1);% 对采样的512个点分别进行减少pi/2,从而生成G(exp(w-w0))k = 0:511;w = -w0+pi*k/512;G1 = freqz(g,1,w);figure(3);subplot(211),plot(w/pi,abs(Y3));xlabel('\omega/\pi');ylabel('|Y3(e^j^\omega)|');title('Y3的频率特性');grid;% 画出Y3的频率特性subplot(212),plot(w/pi,abs(G1));xlabel('\omega/\pi');ylabel('|G1(e^j^\omega)|');title('G1的频率特性');grid;% 画出G1 的频率特性%*************************************************************************% % 频域微分k = 0:N-1;y4 = k.*g;[Y4,w] = freqz(y4,1);%在频域进行微分y0 = ((-1).^k).*g;G2 = [G(2:512)' sum(y0)]';delG = (G2-G)*512/pi;figure(4);subplot(211),plot(w/pi,abs(Y4));xlabel('\omega/\pi');ylabel('|Y4(e^j^\omega)|');title('Y4的频率特性');grid;% 画出Y4的频率特性subplot(212),plot(w/pi,abs(delG));xlabel('\omega/\pi');ylabel('|delG(e^j^\omega)|');title('delG的频率特性');grid;% 画出delG的频率特性%*************************************************************************% % 相乘性质y5 = conv(g,h);%时域卷积[Y5,w] = freqz(y5,1);figure(5);subplot(211),plot(w/pi,abs(Y5));xlabel('\omega/\pi');ylabel('|Y5(e^j^\omega)|');title('Y5的频率特性');grid;% 画出Y5的频率特性subplot(212),plot(w/pi,abs(G.*H));%频域乘积xlabel('\omega/\pi');ylabel('|G.*H(e^j^\omega)|');title('G.*H的频率特性');grid;% 画出G.*H的频率特性%*************************************************************************% % 帕斯瓦尔定理y6 = g.*h;%对于freqz函数,在0到2pi直接取样[Y6,w] = freqz(y6,1,512,'whole');[G0,w] = freqz(g,1,512,'whole');[H0,w] = freqz(h,1,512,'whole');% Evaluate the sample value at w = pi/2% and verify with Y6 at pi/2H1 = [fliplr(H0(1:129)') fliplr(H0(130:512)')]';val = 1/(512)*sum(G0.*H1);% Compare val with Y6(129) i.e sample at pi/2 % Can extend this to other points similarly% Parsevals theoremval1 = sum(g.*conj(h));val2 = sum(G0.*conj(H0))/512;% Comapre val1 with val23.结果(a)(b)(c)(d)(e)4.结果分析M 3.81.题目Using matlab compute the N-point DFTs of the length-N sequences of Problem 3.12 for N=3, 5, 7, and 10. Compare your results with that obtained by evaluating the DTFTs computed in Problem 3.12 at ω= 2pik/N, k=0, 1,……N-1.2.程序%用户定义N的长度N = input('The value of N = ');k = -N:N;y1 = ones([1,2*N+1]);w = 0:2*pi/255:2*pi;Y1 = freqz(y1, 1, w);%对y1做傅里叶变换Y1dft = fft(y1);k = 0:1:2*N;plot(w/pi,abs(Y1),k*2/(2*N+1),abs(Y1dft),'o');grid;xlabel('归一化频率');ylabel('幅度');(a)clf;N = input('The value of N = ');k = -N:N;y1 = ones([1,2*N+1]);w = 0:2*pi/255:2*pi;Y1 = freqz(y1, 1, w);Y1dft = fft(y1);k = 0:1:2*N;plot(w/pi,abs(Y1),k*2/(2*N+1),abs(Y1dft),'o');xlabel('Normalized frequency');ylabel('Amplitude');(b)%用户定义N的长度N = input('The value of N = ');k = -N:N;y1 = ones([1,2*N+1]);y2 = y1 - abs(k)/N;w = 0:2*pi/255:2*pi;Y2 = freqz(y2, 1, w);%对y1做傅里叶变换Y2dft = fft(y2);k = 0:1:2*N;plot(w/pi,abs(Y2),k*2/(2*N+1),abs(Y2dft),'o');grid;xlabel('归一化频率');ylabel('幅度');(c)%用户定义N的长度N = input('The value of N = ');k = -N:N;y3 =cos(pi*k/(2*N));w = 0:2*pi/255:2*pi;Y3 = freqz(y3, 1, w);%对y1做傅里叶变换Y3dft = fft(y3);k = 0:1:2*N;plot(w/pi,abs(Y3),k*2/(2*N+1),abs(Y3dft),'o');grid;xlabel('归一化频率');ylabel('幅度');3.结果(a)N=3N=5 N=7N=10 (b)N=3N=5 N=7N=10 (c)N=3N=5 N=7N=104.结果分析M 3.191.题目Using Program 3_10 determine the z-transform as a ratio of two polynomials in z-1 from each of the partial-fraction expansions listed below:(a)X1(z)=−2+104+z−1−82+z−1,|z|>0.5,(b)X2(z)=3.5−21−0.5z−1−3+z−11−0.25z−2,|z|>0.5,(c)X3(z)=5(3+2z−1)2−43+2z−1+31+0.81z−2,|z|>0.9,(d)X4(z)=4+105+2z−1+z−16+5z−1+z−2,|z|>0.5.2.程序% Program 3_10% Partical-Fraction Expansion to rational z-Transform %r = input('Type in the residues = ');p = input('Type in the poles = ');k = input('Type in the constants = ');[num, den] = residuez(r,p,k);disp('Numberator polynominal coefficients');disp(num) disp('Denominator polynomial coefficients'); disp(den)4.结果分析M 4.61.题目Plot the magnitude and phase responses of the causal IIR digital transfer functionH(z)=0.0534(1+z−1)(1−1.0166z−1+z−2) (1−0.683z−1)(1−1.4461z−1+0.7957z−2).What type of filter does this transfer function represent? Determine the difference equation representation of the above transfer function.2.程序b=[0.0534 -0.00088644 -0.00088644 0.0534];a=[1 -2.1291 1.7833863 -0.5434631];figure(1)freqz(b,a);figure(2)[H,w]=freqz(b,a);plot(w/pi,abs(H)),grid;xlabel('Normalized Frequency (\times\pi rad/sample)'),ylabel('Magnitude');幅度化成真值之后:4.结果分析H(z)=0.0534−0.00088644z−1−0.00088644z−2+0.0534z−31−2.1291z−1+1.7833863z−2−0.5434631z−3M 4.71.题目Plot the magnitude and phase responses of the causal IIR digital transfer functionH(z)=(1−z−1)4(1−1.499z−1+0.8482z−2)(1−1.5548z−1+0.6493z−2).2.程序b=[1 -4 6 -4 1];a=[1 -3.0538 3.8227 -2.2837 0.5472]; figure(1)freqz(b,a);figure(2)[H,w]=freqz(b,a);plot(w/pi,abs(H)),grid;xlabel('Normalized Frequency (\times\pi rad/sample)'), ylabel('Magnitude');3.结果4.结果分析。

数字信号处理实验报告(西电)

数字信号处理实验报告(西电)

数字信号处理实验报告班级:****姓名:郭**学号:*****联系方式:*****西安电子科技大学电子工程学院绪论数字信号处理起源于十八世纪的数学,随着信息科学和计算机技术的迅速发展,数字信号处理的理论与应用得到迅速发展,形成一门极其重要的学科。

当今数字信号处理的理论和方法已经得到长足的发展,成为数字化时代的重要支撑,其在各个学科和技术领域中的应用具有悠久的历史,已经渗透到我们生活和工作的各个方面。

数字信号处理相对于模拟信号处理具有许多优点,比如灵活性好,数字信号处理系统的性能取决于系统参数,这些参数很容易修改,并且数字系统可以分时复用,用一套数字系统可以分是处理多路信号;高精度和高稳定性,数字系统的运算字符有足够高的精度,同时数字系统不会随使用环境的变化而变化,尤其使用了超大规模集成的DSP 芯片,简化了设备,更提高了系统稳定性和可靠性;便于开发和升级,由于软件可以方便传送,复制和升级,系统的性能可以得到不断地改善;功能强,数字信号处理不仅能够完成一维信号的处理,还可以试下安多维信号的处理;便于大规模集成,数字部件具有高度的规范性,对电路参数要求不严格,容易大规模集成和生产。

数字信号处理用途广泛,对其进行一系列学习与研究也是非常必要的。

本次通过对几个典型的数字信号实例分析来进一步学习和验证数字信号理论基础。

实验一主要是产生常见的信号序列和对数字信号进行简单处理,如三点滑动平均算法、调幅广播(AM )调制高频正弦信号和线性卷积。

实验二则是通过编程算法来了解DFT 的运算原理以及了解快速傅里叶变换FFT 的方法。

实验三是应用IRR 和FIR 滤波器对实际音频信号进行处理。

实验一●实验目的加深对序列基本知识的掌握理解●实验原理与方法1.几种常见的典型序列:0()1,00,0(){()()(),()sin()j n n n n u n x n Aex n a u n a x n A n σωωϕ+≥<====+单位阶跃序列:复指数序列:实指数序列:为实数 正弦序列:2.序列运算的应用:数字信号处理中经常需要将被加性噪声污染的信号中移除噪声,假定信号 s(n)被噪声d(n)所污染,得到了一个含噪声的信号()()()x n s n d n =+。

西安电子科技大学数字信号处理上机报告

西安电子科技大学数字信号处理上机报告

数字信号处理大作业院系:电子工程学院学号:02115043姓名:邱道森实验一:信号、系统及系统响应一、实验目的(1) 熟悉连续信号经理想采样前后的频谱变化关系,加深对时域采样定理的理解。

(2) 熟悉时域离散系统的时域特性。

(3) 利用卷积方法观察分析系统的时域特性。

(4) 掌握序列傅里叶变换的计算机实现方法,利用序列的傅里叶变换对连续信号、离散信号及系统响应进行频域分析。

二、实验原理采样是连续信号数字处理的第一个关键环节。

对连续信号()a x t 进行理想采样的过程可用(1.1)式表示:()()()ˆa a xt x t p t =⋅ 其中()t xa ˆ为()a x t 的理想采样,()p t 为周期冲激脉冲,即 ()()n p t t nT δ∞=-∞=-∑()t xa ˆ的傅里叶变换()j a X Ω为 ()()s 1ˆj j j a a m X ΩX ΩkΩT ∞=-∞=-∑进行傅里叶变换,()()()j ˆj e d Ωt a a n X Ωx t t nT t δ∞∞--∞=-∞⎡⎤=-⎢⎥⎣⎦∑⎰ ()()j e d Ωtan x t t nT t δ∞∞--∞=-∞=-∑⎰()j e ΩnTan x nT ∞-=-∞=∑式中的()a x nT 就是采样后得到的序列()x n , 即()()a x n x nT =()x n 的傅里叶变换为()()j j e enn X x n ωω∞-=-∞=∑比较可知()()j ˆj e aΩTX ΩX ωω==为了在数字计算机上观察分析各种序列的频域特性,通常对()j e X ω在[]0,2π上进行M 点采样来观察分析。

对长度为N 的有限长序列()x n ,有()()1j j 0eekk N nn X x n ωω--==∑其中2π,0,1,,1k k k M Mω==⋅⋅⋅-一个时域离散线性时不变系统的输入/输出关系为()()()()()m y n x n h n x m h n m ∞=-∞=*=-∑上述卷积运算也可以转到频域实现()()()j j j e e e Y X H ωωω= (1.9)三、实验内容及步骤(1) 认真复习采样理论、 离散信号与系统、 线性卷积、 序列的傅里叶变换及性质等有关内容, 阅读本实验原理与方法。

第二次数字信号处理实验

第二次数字信号处理实验

信息科学与工程学院2018-2019学年第一学期实验报告课程名称:数字信号处理实验实验名称:离散系统的差分方程、冲激响应和卷积分析专业班级学生学号学生姓名实验时间 2018年10月17日实验报告【实验目的】加深对离散系统的差分方程、冲激响应和卷积分析方法的理解。

【实验设备】1. 计算机;2. MATLAB软件。

【实验具体内容】实验源代码及绘图展示:○1a=[1];b=[0.25 0.25 0.25 0.25];n=0:10;x=impDT(n);h=filter(b,a,x);subplot(1,2,1)stem(n,h,'fill'),grid onxlabel('n'),title('系统单位抽样响应h(n)')y=ones(1,11);g=filter(b,a,y);subplot(1,2,2)stem(n,g),grid onxlabel('n'),title('系统单位阶跃响应g(n)')○2a=[1];b=[0.25 0.25 0.25 0.25];n=0:10;x=impDT(n);h=filter(b,a,x);subplot(1,2,1)stem(n,h,'fill'),grid onxlabel('n'),title('系统单位抽样响应h(n)') y=ones(1,11);g=filter(b,a,y);subplot(1,2,2)stem(n,g),grid onxlabel('n'),title('系统单位阶跃响应g(n)')山东大学·数字信号处理·实验报告【实验心得】初识MATLAB基础知识的记忆很重要,基本的最常规的代码用法和格式需要记忆,熟能生巧,需要在以后的实验中动脑子并且多做。

(完整word版)2015年西南交通大学数字信号处理实验2

(完整word版)2015年西南交通大学数字信号处理实验2

数字信号处理MATLAB上机实验第三章3-23已知序列x(n)={1,2,3, 3,2,1}1)求出x(n)的傅里叶变换X(ejω),画出幅频特性和相频特性曲线(提示:用1024点FFT近似X(ejω));2)计算x(n)的N(N≥6)点离散傅里叶变换X(k),画出幅频特性和相频特性曲线;3) 将X(ejω)和X(k)的幅频特性和相频特性曲线分别画在同一幅图中, 验证X(k)是X(ej ω)的等间隔采样, 采样间隔为2π/N;4)计算X(k)的N点IDFT,验证DFT和IDFT的惟一性。

实验分析(1)题用1024点DFT近似x(n)的傅里叶变换.(2)题用36点DFT。

(4)题求傅里叶反变换验证IDFT的惟一性.实验代码及截图1到3问xn=[1 2 3 3 2 1];Xen=fft(xn,1024);n1=0:length(Xen)—1;amp = abs(Xen);phi = angle(Xen);Xkn=fft(xn,36);n2=0:length(Xkn)-1;amp2 = abs(Xkn);phi2 = angle(Xkn);subplot(221);plot(n1,amp)title(’Xejw幅频特性');xlabel('n');ylabel('Amp') subplot(222);plot(n1,phi)title('Xejw相频特性');xlabel(’n’);ylabel('Phi')subplot(223);stem(n2,amp2,'。

’)title('Xk幅频特性’);xlabel('n');ylabel('Amp')subplot(224);stem(n2,phi2,’.’)title(’Xk相频特性');xlabel('n’);ylabel(’Phi')截图如下第4问xn=[1 2 3 3 2 1];Xkn2=fft(xn,6);x6n=ifft(Xkn2);n2=0:length(x6n)-1;subplot(2,1,2);stem(n2,x6n,'。

西安电子科技大学数字图像处理上机报告

数字图像处理上机报告专业:电子信息工程班级:020915学号:02091478姓名:陈步华实验一1、实验要求产生右图所示图像 f1(m,n),其中图像大小为256×256,中间亮条128×32,暗处=0,亮处=100。

对其进行FFT:①同屏显示原图f1(m,n)和FFT(f1)的幅度谱图;②若令f2(m,n)=(-1)m+n f1(m,n),重复以上过程,比较二者幅度谱的异同,简述理由;③若将f2(m,n)顺时针旋转90 度得到f3(m,n),试显示FFT(f3)的幅度谱,并与FFT(f2)的幅度谱进行比较;④若将f1(m,n) 顺时针旋转90 度得到f4(m,n),令f5(m,n)=f1(m,n)+f4(m,n),试显示FFT(f5)的幅度谱,并指出其与 FFT(f1)和FFT(f4)的关系;⑤若令f6(m,n)=f2(m,n)+f3(m,n),试显示FFT(f6)的幅度谱,并指出其与 FFT(f2)和FFT(f3)的关系,比较FFT(f6)和FFT(f5)的幅度谱。

2.实验结果①显示的f1(m,n)和FFT(f1)的幅度谱图如下图所示:②FFT(f1)和FFT(f2)同屏显示如图:分析: f2(m,n)=(-1)n m +f1(m,n)⇔F (u-2N ,v-2N),即通过给图像f1(m,n)乘以(-1)n m +可使f1(m,n)从原点(0,0)移到中心(N/2,N/2),从而实现频谱的中心化。

③分析:f3(m,n)为f2(m,n)图像左转90°而得,f3(m,n)的FFT转换图像也是f2(m,n)的FFT转换图像左转90°所得。

④⑤分析:将f5与f6的幅度图像作比较得f6也是对f5实现了频谱中心化实验二1、实验要求产生教材104 页题图4.18(右图)所示的二值图像(白为1,黑为0),编程实现习题4.18 所要求的处理(3´3 的平均滤波和中值滤波)功能(图像四周边界不考虑,处理结果按四舍五入仍取0 或1),显示处理前后的图像,比较其异同。

西电数字信号处理上机实验报告

数字信号处理上机实验报告14020710021 张吉凯第一次上机实验一:设给定模拟信号()1000t a x t e -=,t 的单位是ms 。

(1) 利用MATLAB 绘制出其时域波形和频谱图(傅里叶变换),估计其等效带宽(忽略谱分量降低到峰值的3%以下的频谱)。

(2) 用两个不同的采样频率对给定的()a x t 进行采样。

○1()()15000s a f x t x n =以样本秒采样得到。

()()11j x n X e ω画出及其频谱。

○2()()11000s a f x t x n =以样本秒采样得到。

()()11j x n X e ω画出及其频谱。

比较两种采样率下的信号频谱,并解释。

(1)MATLAB 程序:N=10; Fs=5; Ts=1/Fs;n=[-N:Ts:N];xn=exp(-abs(n)); w=-4*pi:0.01:4*pi;X=xn*exp(-j*(n'*w));subplot(211)plot(n,xn);title('x_a(t)时域波形');xlabel('t/ms');ylabel('x_a(t)');axis([-10, 10, 0, 1]);subplot(212);plot(w/pi,abs(X));title('x_a(t)频谱图');xlabel('\omega/\pi');ylabel('X_a(e^(j\omega))'); ind = find(X >=0.03*max(X))*0.01;eband = (max(ind) -min(ind));fprintf('等效带宽为%fKHZ\n',eband);运行结果:等效带宽为12.110000KHZ(2)MATLAB程序:N=10;omega=-3*pi:0.01:3*pi;%Fs=5000Fs=5;Ts=1/Fs;n=-N:Ts:N;xn=exp(-abs(n));X=xn*exp(-j*(n'*omega));subplot(2,2,1);stem(n,xn);grid on;axis([-10, 10, 0, 1.25]); title('时域波形(f_s=5000)');xlabel('n');ylabel('x_1(n)');subplot(2,2,2);plot(omega/pi,abs(X));title('频谱图(f_s=5000)');xlabel('\omega/\pi');ylabel('X_1(f)');grid on;%Fs=1000Fs=1;Ts=1/Fs;n=-N:Ts:N;xn=exp(-abs(n));X=xn*exp(-j*(n'*omega));subplot(2,2,3);stem(n,xn);grid on;axis([-10, 10, 0, 1.25]); title('时域波形(f_s=1000)');xlabel('n');ylabel('x_2(n)');grid on; subplot(2,2,4); plot(omega/pi,abs(X)); title('频谱图(f_s=1000)'); xlabel('\omega/\pi'); ylabel('X_2(f)'); grid on;运行结果:实验二:给定一指数型衰减信号()()0cos 2at x t e f t π-=,采样率1s f T=,T 为采样周期。

2017年西电电院数字信号处理上机实验报告六

实验六、FIR数字滤波器设计及其网络结构班级:学号:姓名:成绩:1实验目的(1)熟悉线性相位FIR数字滤波器的时域特点、频域特点和零极点分布;(2)掌握线性相位FIR数字滤波器的窗函数设计法和频率采样设计法;(3)了解IIR数字滤波器和FIR数字滤波器的优缺点及其适用场合。

2 实验内容(1)设计计算机程序.根据滤波器的主要技术指标设计线性相位FIR数字低通、高通、带通和带阻滤波器;(2)绘制滤波器的幅频特性和相频特性曲线.验证滤波器的设计结果是否达到设计指标要求;(3)画出线性相位FIR数字滤波器的网络结构信号流图。

3实验步骤(1)设计相应的四种滤波器的MATLAB程序;(2)画出幅频相频特性曲线;(3)画出信号流图。

4 程序设计%% FIR低通f=[0.2,0.35];m=[1,0];Rp=1;Rs=40;dat1=(10^(Rp/20)-1)/(10^(Rp/20)+1);dat2=10^(-Rs/20);rip=[dat1,dat2];[M,f0,m0,w]=remezord(f,m,rip);M=M+2;hn=remez(M,f0,m0,w);w=0:0.001:pixn=[0:length(hn)-1];H=hn*exp(-j*xn'*w);figuresubplot(2,1,1)plot(w/pi,20*log10(abs(H)));gridon;xlabel('\omega/\pi'),ylabel('|H(e^j^w)|/dB')subplot(2,1,2)plot(w/pi,angle(H)/pi);xlabel('\omega/\pi'),ylabel('\phi(\omega)/\pi')%% FIR高通f=[0.7,0.9];m=[0,1];Rp=1;Rs=60;dat1=(10^(Rp/20)-1)/(10^(Rp/20)+1);dat2=10^(-Rs/20);rip=[dat2,dat1];[M,f0,m0,w]=remezord(f,m,rip);hn=remez(M,f0,m0,w);w=0:0.001:pixn=[0:length(hn)-1];H=hn*exp(-j*xn'*w);figuresubplot(2,1,1)plot(w/pi,20*log10(abs(H)));gridon;xlabel('\omega/\pi'),ylabel('|H(e^j^w)|/dB')subplot(2,1,2)plot(w/pi,angle(H)/pi);xlabel('\omega/\pi'),ylabel('\phi(\omega)/\pi')%% FIR带通f=[0.2,0.35,0.65,0.8];m=[0,1,0];Rp=1;Rs=60;dat1=(10^(Rp/20)-1)/(10^(Rp/20)+1);dat2=10^(-Rs/20);rip=[dat2,dat1,dat2];[M,f0,m0,w]=remezord(f,m,rip);M=M+3hn=remez(M,f0,m0,w);w=0:0.001:pixn=[0:length(hn)-1];H=hn*exp(-j*xn'*w);figuresubplot(2,1,1)plot(w/pi,20*log10(abs(H)));gridon;xlabel('\omega/\pi'),ylabel('|H(e^j^w)|/dB')subplot(2,1,2)plot(w/pi,angle(H)/pi);xlabel('\omega/\pi'),ylabel('\phi(\omega)/\pi')%% FIR带阻f=[0.2,0.35,0.65,0.8];m=[1,0,1];Rp=1;Rs=60;dat1=(10^(Rp/20)-1)/(10^(Rp/20)+1);dat2=10^(-Rs/20);rip=[dat1,dat2,dat1];[M,f0,m0,w]=remezord(f,m,rip);hn=remez(M,f0,m0,w);w=0:0.001:pixn=[0:length(hn)-1];H=hn*exp(-j*xn'*w);figuresubplot(2,1,1)plot(w/pi,20*log10(abs(H)));gridon;xlabel('\omega/\pi'),ylabel('|H(e^j^w)|/dB')subplot(2,1,2)plot(w/pi,angle(H)/pi);xlabel('\omega/\pi'),ylabel('\phi(\omega)/\pi') 5实验结果及分析(1)FIR低通滤波器自动得到的M值不满足要求.故我们将M加上2 在w=0.2π时.H=-0.5dB;w=0.35π时.H=-41dB。

数字信号处理2实验报告一西交大殷

数字信号处理II实验报告实验题目:维纳滤波器的计算机实现姓名:学号:班级:专业:一、实验目的1.利用计算机编程实现加性噪声信号的维纳滤波。

2.将计算机模拟实验结果与理论分析结果相比较,分析影响维纳滤波效果的各种因素,从而加深对维纳滤波的理解。

3.利用维纳一步纯预测方法实现对信号生成模型的参数估计。

二、实验原理维纳滤波是一种从噪声背景中提取信号的最佳线性滤波方法,假定一个随机信号x(n)具有以下形式:(n)s(n)v(n)x =+ 1-1其中,s(n)为有用信号,v(n)为噪声干扰,将其输入一个单位脉冲响应为h(n)的线性系统,其输出为(n)(m)x(n m)y h ∞-∞=-∑ 1-2 我们希望x(n)通过这个系统后得到的y(n)尽可能接近于s(n),因此,称y(n)为信号s(n)的估值。

按照最小均方误差准则,h(n)应满足下面的正则方程:(k)(m)(k m)xs xx h φφ∞-∞=-∑ 1-3 这就是著名的维纳-霍夫方程,其中是 (m)xx φ是x(n)的自相关函数,()xs m φ是 x(n)和s(n)是的互相关函数。

在要求 h(n)满足因果性的条件下,求解维纳-霍夫方程是一个典型的难题。

虽然目前有几种求解 h(n)的解析方法,但它们在计算机上实现起来非常困难。

因此,本实验中,利用近似方法,即最佳 FIR 维纳滤波方法,在计算机上实现随机信号的维纳滤波。

设 h(n)为一因果序列,其长度为 N ,则(n)(m)x(n m)y h ∞-∞=-∑ 1-4 同样利用最小均方误差准则,h(n)满足下面方程:xx xs R h r = 1-5 其中 [](0),h(1),,h(N 1)T h h =-(0)(1)(N 1)(0)xx xx xx xx xx N R φφφφ-+⎛⎫⎪= ⎪ ⎪-⎝⎭[](0)(N 1)T xs xs xs r φφ=- 当xx R 为满秩矩阵时,1xx xs h R r -= 1-6 由此可见,利用有限长的 h(n)实现维纳滤波器,只要已知xx R 和xs r ,就可以按上式解得满足因果性的 h 。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数字信号处理实验报告第二次上机题实验二摘要: 1. 快速傅里叶变换 (Fast Fourier Transform),即利用计算机计算离散傅里叶变换(DFT )的高效、快速计算方法的统称,简称FFT ,于1965年由J.W.库利和T.W.图基提出。

本文分别利用公式法,基-2 DIT-FFT 算法与Matlab 自带fft 函数,对同一个随机数序列求DFT,并比较结果,分析原因。

绪论: 1. 离散傅氏变换(DFT )的目的是把信号由时域变换到频域,从而可以在频域分析处理信息,得到的结果再由IDFT 变换到时域。

FFT 是 DFT 的一种快速算法。

在数字信号处理系统中,FFT 作为一个非常重要的工具经常使用,甚至成 为 DSP 运算能力的一个考核因素。

本实验通过直接计算 DFT ,利用基-2 DIT-FFT 算法思想计算 DFT ,以及使用 MATLAB 函数中的 FFT 命令计算离散时间信号的频谱,并比较计算使用时间,分析造成计算速度差异的原因,以加深对离散信号的 DFT 变换及 FFT 算法的理解。

一. 实验目的1. 用Matlab 编程实现DFT 函数:N X W x =。

2. 用Matlab 编程实现 基2-DIT FFT 。

3. 随机产生一个1024的数组和一个更大的数组,用自己编程实现的DFT,FFT 函数和Matlab 自带的FFT 函数对该数组进行测试,比较速度上的差异,分析原因。

二. 实验原理与方法1. DFT(离散傅里叶变换): 210()[()](),kn N j knknNN N n X k DFT x n x n W W eπ--====∑。

IDFT(逆离散傅里叶变换):2101()[()](),kn N j kn kn NNN n x n IDFT X k X k WW eNπ---====∑函数构造方法:a. 使用公式N X W x =构造函数: dft(x, N),x 为离散序列,N 为采样点数。

采样范围:[0:N-1]。

b.使用公式 *1N x W X N=构造函数: idft(X, N),X 为离散谱序列,N 为采样点数。

采样范围:[0:N-1]。

2. 基-2 DIT-FFT 算法(时域抽取基2 FFT 算法): 函数构造方法:a.选定序列长度:设原始序列为()x n ,则其原始长度为(())length x n ;处理后的序列长度为22,log [(())]M N M length x n ==⎡⎤⎢⎥,长度不足则补0。

b.奇偶分解成子序列: 偶序列:1()(2),012Nx r x r r =≤≤-;奇序列:2()(2+1),012Nx r x r r =≤≤-, c.利用可约性进行转化:1122220()()()(2)(21)epopNN kn kn kr kkr N N N N N n n r r X k x n W x n W x r W W x r W --===+=++∑∑∑∑11221/22/2()()NN kr k krN N N r r x r W W x r W --===+∑∑ d. 利用周期性和对称性将X(k)分段表示:1211/20()()N kr N r X k x r W -==∑,1222/2()()01N krN r X k x r W k N -==≤≤-∑。

则有:11221/22/2120()()()()()NN kr k kr kN N N N r r X k x r W W x r W X k W X k --===+=+∑∑。

由于:/21122()(),()(),22k N kN NNN X k X k X k X k W W ++=+==-;所以:1212()()(),()()(),012kkN N N X k X k W X k X k X k W X k k N =++=-≤≤-3. 生成随机数序列,对每一个function 的运行时间进行监测:a. 使用randi([min max], [m n])函数(作用:返回一个在[min,max]范围内的的m*n的伪随机整数矩阵)随机产生一个取值范围[0,100]的1024的数组和一个2048的数组,用自己编程实现的DFT,FFT函数和Matlab自带的FFT函数对该数组进行测试。

b.使用代码段: t1=clock; myfunction(); t2=clock; etime(t2, t1);检测三个函数运算速度上的差异。

三.实验内容及步骤1. 实验步骤:a. 用自己编写的DFT算法,对两个随机数序列进行处理,得出幅频特性图及算法的运算时间。

2. 实验步骤:a. 用自己编写的基2-DIT FFT算法,对两个随机数序列进行处理,得出幅频特性图及算法的运算时间。

3. 实验步骤:a. 用Matlab自带的fft函数,对两个随机数序列进行处理,得出幅频特性图及算法的运算时间,比较三个函数的幅频特性图及算法的运算时间,思考原因,得出结论。

四.实验结果分析及结论总结1. 结果如图:图1 1024个随机数的X(k)图像,范围[0 100]图2 2048个随机数的X(k)图像,范围[0 100]比较图像可知,Matlab 自带的fft 函数运行速度最快, 基2 DIT-FFT 函数次之, DFT 函数最慢。

分析原因:直接计算N 点DFT 的复数乘法次数为2N ,复数加法次数为(1)N N -;使用基 2 DIT-FFT 算法的复数乘法次数为2log 2M NC N =,复数加法次数为2log A C N N =;当1N时,基2 DIT-FFT 算法所用的时间与直接计算DFT所用的时间相比大幅减少。

五.思考和创新1. 通过以上实验对比得知,Matlab 自带的fft 函数运行速度最快,当硬件资源不充足时,尽量使用Matlab 自带函数。

六.心得及展望1. 通过实验,我对于基2的DIT-FFT 有了更加深刻的理解。

通过对不同长度随机数组的DFT 与FFT ,可以得出结论:在采样点数N 很大时,使用FFT 可以有效节约时间和硬件资源。

八.附件1. 主函数main 代码如下:%% 清除系统内存中的变量,关闭之前的程序,清屏。

clear all; close all; clc;%主程序 main%x=randi([0,100], [1,1024]) %随机产生一个取值范围[0,100]的1024的数组xx=randi([0,100], [1,2048]) %随机产生一个取值范围[0,100]的2048的数组x%对自己编写的dft函数进行计时t1=clock;X_dft=dft(x,length(x)) %dft函数t2=clock;t_dft=etime(t2,t1) %dft所用时间%对自己编写的基2 DIT-FFT函数进行计时t1=clock;X_Base_2_ditfft=Base_2_ditfft(length(x),x) %基2 DIT-FFT函数t2=clock;t_base2_dit_fft=etime(t2,t1) %基2 DIT-FFT函数所用时间%对Matlab自带的fft函数进行计时t1=clock;X_fft = fft(x) %Matlab的fft函数t2=clock;t_fft=etime(t2,t1) %fft函数所用时间%画图,显示幅频特性和运行所用时间subplot(3,1,1); stem(X_dft); grid;xlabel('k'); ylabel('X(k)'); title(['DFT的图像, t=',num2str(t_dft)]);subplot(3,1,2); stem(X_Base_2_ditfft); grid;xlabel('k'); ylabel('X(k)'); title(['基 2 DIT-FFT的图像, t=',num2str(t_base2_dit_fft)]);subplot(3,1,3);stem(X_fft); grid;xlabel('k'); ylabel('X(k)'); title(['Matlab自带fft的图像, t=',num2str(t_fft)]);2. 直接DFT代码如下:function XK=dft(xn,N) %DFT函数%xn: 离散序列%N: 采样点数%返回值XK: 离散谱序列 XK=DFT[x(n)]n=0:N-1; %序列取值范围:0:N-1k=0:N-1; %频域采样范围: 0:N-1, w=(2*pi/N)*kWN=exp(-j*2*pi/N);nk=n'*k;WNnk=WN.^nk; %生成WN矩阵,X(k)=∑{0,N-1} x(n)*(e^(-j2π/N))^(n'*k) XK=xn*WNnk; %返回结果XK=DFT[x(n)]end3. 基2 DIT-FFT代码如下:% 基于Matlab的时间抽取基2FFT算法function y=myditfft(x)%本程序对输入序列x实现DIT-FFT基2算法,点数取大于等于长度的2的幂次,输入:离散序列x,输出:X(k)m=log2(2^nextpow2(length(x))); %求的x长度对应的2的最低幂次m N=2^m;if length(x)<Nx=[x,zeros(1,N-length(x))]; %若长度不是2的幂,补0到2的整数幂endx;%对输入序列进行倒序%如果输入序列的自然顺序号I用二进制数(例如n2n1n0)表示%则其倒位序J对应的二进制数就是(n0n1n2),这样,在原来自然顺序时应该放x(I)的%单元,现在倒位序后应放x(J)。

NV2=N/2;NM1=N-1;I=0;J=0;while I<NM1if I<JT=x(J+1);x(J+1)=x(I+1);x(I+1)=T;endK=NV2;while K<=JJ=J-K;K=K/2;endJ=J+K;I=I+1;endx;%以下程序解释:%第一级从x(0)开始,跨接一阶蝶形,再取每条对称%第二级从x(0)开始,跨接两阶蝶形,再取每条对称%第m级从x(0)开始,跨接2^(m-1)阶蝶形,再取每条对称....for mm=1:m %将DFT做m次基2分解,从左到右,对每次分解作DFT运算 Nmr=2^mm;u=1; %旋转因子u初始化WN=exp(-j*2*pi/Nmr); %本次分解的基本DFT因子WN=exp(-i*2*pi/Nmr)for n=1:Nmr/2 %本次跨越间隔内的各次碟形运算for k=n:Nmr:N %本次碟形运算的跨越间隔为Nmr=2^mmkp=k+Nmr/2; %确定碟形运算的对应单元下标(对称性)t=x(kp)*u; %碟形运算的乘积项x(kp)=x(k)-t; %碟形运算的加法项x(k)=x(k)+t;endu=u*WN; %修改旋转因子,多乘一个基本DFT因子WNendendy=x; %输出end。

相关文档
最新文档