西电数字信号处理上机实验一
- 格式:docx
- 大小:34.21 KB
- 文档页数:2
数字信号处理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.结果分析。
数字信号处理实验信息252120502123赵梦然实验一快速傅里叶变换与信号频谱分析一.实验目的1. 在理论学习的基础上,通过本实验加深对离散傅里叶变换的理解。
2. 熟悉并掌握按时间抽取编写快速傅里叶变换(FFT)算法的程序。
3. 了解应用FFT 进行信号频谱分析过程中可能出现的问题,例如频谱混淆、泄漏、栅栏效应等,以便在实际中正确使用FFT 算法进行信号处理。
二.实验内容1. 仔细分析教材第六章“时间抽取法FFT 的FORTRAN 程序”,编写出相应的使用FFT 进行信号频谱分析的Matlab 程序。
2. 用FFT 程序分析正弦信号,分别在以下情况进行分析,并讨论所得的结果:a) 信号频率F=50Hz,采样点数N=32,采样间隔T=0.000625s;b) 信号频率F=50Hz,采样点数N=32,采样间隔T=0.005s;c) 信号频率F=50Hz,采样点数N=32,采样间隔T=0.0046875s;d) 信号频率F=50Hz,采样点数N=32,采样间隔T=0.004s;e) 信号频率F=50Hz,采样点数N=64,采样间隔T=0.000625s;f) 信号频率F=250Hz,采样点数N=32,采样间隔T=0.005s;g) 将c)中信号后补32 个0,做64 点FFT,并与直接采样64 个点做FFT 的结果进行对比。
3. 思考题:1) 在实验a)、b)、c)和d)中,正弦信号的初始相位对频谱图中的幅度特性是否有影响?为什么?信号补零后做FFT 是否可以提高信号频谱的分辨率?为什么?三.实验程序function pushbutton1_Callback(hObject, eventdata, handles)F=str2double(get(handles.f,'string'));N=str2double(get(handles.n,'string'));T=str2double(get(handles.t,'string'));fai=str2double(get(handles.fai,'string'));zero=get(handles.zero,'value');%进行采样t=0:T:(N-1)*T;x=cos(2*pi*F*t+fai);%进行fft运算if zeroy=abs(fft(x,N+32));y=y/max(y);elsey=abs(fft(x));y=y/max(y);end%画图axes(handles.axes2);stem((0:N-1),x,'*');axes(handles.axes1);if zerostem((0:N+31),y,'.');elsestem((0:N-1),y);endxlabel('频率/Hz');ylabel('振幅');grid on;四.实验结果实验数据记录:(a)输入信号频率:50输入采样点数:32输入间隔时间:0.000625是否增加零点?否信号频率F=50Hz,采样长N=32,采样周期T=0.000625s,fs=1/T=1600Hz,基频为fs/N=50Hz,50/50=1.故此在频谱图上的第1个点和第31个点有值。
数字信号处理实验报告班级:****姓名:郭**学号:*****联系方式:*****西安电子科技大学电子工程学院绪论数字信号处理起源于十八世纪的数学,随着信息科学和计算机技术的迅速发展,数字信号处理的理论与应用得到迅速发展,形成一门极其重要的学科。
当今数字信号处理的理论和方法已经得到长足的发展,成为数字化时代的重要支撑,其在各个学科和技术领域中的应用具有悠久的历史,已经渗透到我们生活和工作的各个方面。
数字信号处理相对于模拟信号处理具有许多优点,比如灵活性好,数字信号处理系统的性能取决于系统参数,这些参数很容易修改,并且数字系统可以分时复用,用一套数字系统可以分是处理多路信号;高精度和高稳定性,数字系统的运算字符有足够高的精度,同时数字系统不会随使用环境的变化而变化,尤其使用了超大规模集成的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 =+。
《数字信号处理》上机实验指导书万国龙周秀芝编写北京航空航天大学电子工程系目录1.前言 (1)2.实验一:连续信号的采样 (3)3.实验二:IIR滤波器的设计 (5)4.实验三:FIR滤波器的设计 (7)5.实验四:用FFT对连续时间信号进行频谱分析 (9)6.实验五:卷积和滤波 (11)7.实验六:电话号码分析 (13)8.附录A:MA TLAB系统与语言简介 (14)9.附录B:信号处理工具箱函数 (21)10.参考书目 (22)前言自60年代以来,随着计算机和信息学科的飞速发展,数字信号处理(Digital Signal Processing,DSP)技术应用而生并迅速发展,现已形成一门独立的学科体系。
当前,我们正在全面地进入数字时代,随着微电子技术的迅速发展,通用的DSP芯片的性能不断提高,而价格持续地下降。
以DSP芯片及外围开发设备为主,正在形成一个具有较大潜力的产业与市场。
众所周知,几乎所有的工程技术领域都要涉及到信号问题。
这些信号包括电的、磁的、机械的、热的、声的、光的及生物体的等等各个方面。
如何在较强的背景噪声下提取出真正的信号或信号的特征并将其应用于工程实际是信号处理技术要完成的任务。
因此可以说,信号处理几乎涉及到所有的工程技术领域。
数字信号处理是一门以算法为核心的理论性很强的学科。
它是利用数字计算机或专用处理设备,以数值计算的方法对信号进行采集、变换、综合、估值与识别等加工处理,借以达到提取信息和便于应用的目的。
数字信号处理技术及设备具有灵活、精确、抗干扰强、设备尺寸小、造价低、速度快等突出优点,这些都是模拟信号处理技术与设备所无法比拟的。
近30来年,数字信号处理是紧紧围绕着理论、实现及应用三个方面迅速发展起来的,它以众多的学科为理论基础,其成果又渗透到众多的学科,成为理论与实践并重、在高新技术领域中占有重要地位的新兴学科。
数字信号处理的实现,大体上有如下几种方法:(1)在通用的微计算机上用软件来实现。
实验一:信号、系统及系统响应一、实验目的(1) 熟悉连续信号经理想采样前后的频谱变化关系, 加深对时域采样定理的理解。
(2) 熟悉时域离散系统的时域特性。
(3) 利用卷积方法观察分析系统的时域特性。
(4) 掌握序列傅里叶变换的计算机实现方法, 利用序列的傅里叶变换对连续信号、离散信号及系统响应进行频域分析。
二、实验原理与方法1.连续时间信号的采样采样是从连续时间信号到离散时间信号的过渡桥梁,对采样过程的研究不仅可以了解采样前后信号时域和频域特性发生的变化以及信号内容不丢失的条件,而且有助于加深对拉氏变换、傅氏变换、z 变换和序列傅氏变换之间关系的理解。
对一个连续时间信号进行理想采样的过程可以表示为该信号和个周期冲激脉冲的乘积,即)()()(ˆt M t x t x a a = (1-1) 其中)(ˆt x a 是连续信号)(t x a 的理想采样,)(t M 是周期冲激脉冲 ∑+∞-∞=-=n nT t t M )()(δ (1-2)它也可以用傅立叶级数表示为: ∑+∞-∞=Ω=n t jm s e T t M 1)( (1-3)其中T 为采样周期,T s /2π=Ω是采样角频率。
设)(s X a 是连续时间信号)(t x a 的双边拉氏变换,即有:⎰+∞∞--=dt e t x s X st a a )()( (1-4)此时理想采样信号)(ˆt x a 的拉氏变换为∑⎰+∞-∞=+∞∞--Ω-===m s a st a ajm s X T dt e t x s X )(1)(ˆ)(ˆ (1-5) 作为拉氏变换的一种特例,信号理想采样的傅立叶变换 []∑+∞-∞=Ω-Ω=Ωm s a a m j X T j X )(1)(ˆ (1-6)由式(1-5)和式(1-6)可知,信号理想采样后的频谱是原信号频谱的周期延拓,其延拓周期等于采样频率。
根据Shannon 采样定理,如果原信号是带限信号,且采样频率高于原信号最高频率分量的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”,重新编译后没有错误。
《数字信号处理》上机实验指导《数字信号处理》上机实验指导实验一、Z 变换及离散时间系统分析(一)、实验目的1、通过本实验熟悉Z 变换在离散时间系统分析中的地位和作用。
2、掌握并熟练使用有关离散系统分析的MATLAB 调用函数及格式,以深入理解离散时间系统的频率特性。
(二)、实验内容及步骤对于一个给定的LSI 系统,其转移函数H(z)习惯被定义为H(z)=B(z)/A(z),即:abn a n b z n a z a z a z n b z b z b A B H ------++++++++++==)1(...)3()2(1)1(...)3()2()1(b )z ()z ()z (2121 公式中b n 和an 分别是H(Z)分子与分母多项式的阶次,在有关MATLAB 的系统分析的文件中,分子和分母的系数被定义为向量,即)]1(),...,2(),1([)]1(),...,2(),1([+=+=a b n a a a a n b b b b并要求)1(a =1,如果)1(a ≠1,则程序将自动的将其归一化为1。
1、系统的阶跃响应调用格式为:y=filter(b,a,x),其中x,y,a,b 都是向量。
例1 令4321432155075.02925.28291.30544.31001836.0007374.0011 016.0007344.0001836.0)z (--------+-+-++++=z z z z z z z z H 求该系统的阶跃响应(y (n ))。
实现该任务的程序如下:clear;x=ones(100);% x(n)=1,n=1~100;t=1:100;% t 用于后面的绘图;b=[.001836,.007344,.011016,.007374,.001836]; % 形成向量b ;a=[1,-3.0544,3.8291,-2.2925,.55075]; % 形成向量a ;y=filter(b,a,x);% 求所给系统的输出,本例实际上是求所给系统的阶跃响应;plot(t,x,'r.',t,y,'k-');grid on;% 将x(n)(绿色)y(n)(黑色)画在同一个%图上;ylabel('x(n) and y(n)')xlabel('n')2、单位抽样响应h(n)调用格式为:h=impz(b ,a ,N) 或 [h ,t]=impz(b ,a ,N)其中N 是所需的h(n)的长度,前者绘图时n 从1开始,而后者从0开始。
《数字信号处理》上机实验指导书实验1 离散时间信号的产生1.实验目的数字信号处理系统中的信号都是以离散时间形态存在,所以对离散时间信号的研究是数字信号处理的基本所在。
而要研究离散时间信号,首先需要产生出各种离散时间信号。
MATLAB 是一套功能强大的工程计算及数据处理软件,广泛应用于工业,电子,医疗和建筑等众多领域。
使用MATLAB软件可以很方便地产生各种常见的离散时间信号,而且它还具有强大的绘图功能,便于用户直观地输出处理结果。
通过本实验,学生将学习如何用MATLAB产生一些常见的离散时间信号,并通过MATLAB中的绘图工具对产生的信号进行观察,加深对常用离散信号的理解。
2.实验要求本实验要求学生运用MATLAB编程产生一些基本的离散时间信号,并通过MATLAB的几种绘图指令画出这些图形,以加深对相关教学内容的理解,同时也通过这些简单的函数练习了MATLAB的使用。
3.实验原理(1)常见的离散时间信号1)单位抽样序列,或称为离散时间冲激,单位冲激:?(n)???1?0n?0 n?0如果?(n)在时间轴上延迟了k个单位,得到?(n?k)即:?1n?k ?(n?k)??0n?0?2)单位阶跃序列n?0?1 u(n)?n?0?0在MATLAB中可以利用ones( )函数实现。
x?ones(1,N);3)正弦序列x(n)?Acos(?0n??)这里,A,?0,和?都是实数,它们分别称为本正弦信号x(n)的振幅,角频率和初始相位。
f0??02?为频率。
x(n)?ej?n4)复正弦序列5)实指数序列x(n)?A?n(2)MATLAB编程介绍MATLAB是一套功能强大,但使用方便的工程计算及数据处理软件。
其编程风格很简洁,没有太多的语法限制,所以使用起来非常方便,尤其对初学者来说,可以避免去阅读大量的指令系统,以便很快上手编程。
值得注意得就是,MATLAB中把所有参与处理的数据都视为矩阵,并且其函数众多,希望同学注意查看帮助,经过一段时间的训练就会慢慢熟练使用本软件了。
数字信号处理大作业院系:电子工程学院学号: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) 认真复习采样理论、 离散信号与系统、 线性卷积、 序列的傅里叶变换及性质等有关内容, 阅读本实验原理与方法。
数字信号处理上机实验及参考程序数字信号处理实验实验⼀离散时间信号与系统及MA TLAB实现1.单位冲激信号:n = -5:5;x = (n==0);subplot(122);stem(n, x);2.单位阶跃信号:x=zeros(1,11);n0=0;n1=-5;n2=5;n = n1:n2;x(:,n+6) = ((n-n0)>=0);stem(n,x);3.正弦序列:n = 0:1/3200:1/100;x=3*sin(200*pi*n+1.2);stem(n,x);4.指数序列n = 0:1/2:10;x1= 3*(0.7.^n);x2=3*exp((0.7+j*314)*n);subplot(221);stem(n,x1);subplot(222);stem(n,x2);5.信号延迟n=0:20;Y1=sin(100*n);Y2=sin(100*(n-3));subplot(221);stem(n,Y1);subplot(222);stem(n,Y2);6.信号相加X1=[2 0.5 0.9 1 0 0 0 0];X2=[0 0.1 0.2 0.3 0.4 0.5 0.6 0.7];X=X1+X2;stem(X);7.信号翻转X1=[2 0.5 0.9 1];n=1:4;X2=X1(5-n);subplot(221);stem(n,X1);subplot(222);stem(n,X2);8.⽤MATLAB计算序列{-2 0 1 –1 3}和序列{1 2 0 -1}的离散卷积。
a=[-2 0 1 -1 3]; b=[1 2 0 -1];c=conv(a,b);M=length(c)-1;n=0:1:M;stem(n,c);xlabel('n');ylabel('幅度');9.⽤MA TLAB计算差分⽅程当输⼊序列为时的输出结果。
N=41;a=[0.8 -0.44 0.36 0.22];b=[1 0.7 -0.45 -0.6];x=[1 zeros(1,N-1)];k=0:1:N-1;y=filter(a,b,x);stem(k,y)xlabel('n');ylabel('幅度')10.冲激响应impzN=64;a=[0.8 -0.44 0.36 0.22];b=[1 0.7 -0.45 -0.6];x=[1 zeros(1,N-1)];k=0:1:N-1;y=impz(a,b,N);stem(k,y)xlabel('n');ylabel('幅度')11.传递函数频率响应a=[0.8 -0.44 0.36 0.22];%分⼦的系数数组b=[1 0.7 -0.45 -0.6];%分母的系数数组n=(0:500)*pi/500%在pi范围内取501个采样点[h,f]=freqz(a,b,n);%求系统的频率响应subplot(2,1,1),plot(n/pi,abs(h));grid%作系统的幅度频响图axis([0,1,1.1*min(abs(h)),1.1*max(abs(h))]);ylabel('幅度');subplot(2,1,2),plot(n/pi,angle(h));grid %作系统的相位频响图axis([0,1,1.1*min(angle(h)),1.1*max(angle(h))]);ylabel('相位');xlabel('以pi为单位的频率');12.系统零极点图a=[0.8 -0.44 0.36 0.22];b=[1 0.7 -0.45 -0.6];h=zplane(a,b);实验⼆离散信号变换1.解⽅程y(n)-2y(n-1)+3y(n-2)=4x(n)-5x(n-1)+6x(n-2)-7x(n-3)a=[4,-5,6,-7];b=[1,-2,3];n=[0:7]; x=ones(length(n));Y=[-1,1];X=[1,-1];xic=filtic(b,a,Y,X);y1=filter(b,a,x,xic)stem(n,y1);xlabel('n');ylabel('y(n)');2.对连续的单⼀频率周期信号按采样频率采样,截取长度N分别选N =20和N =16,观察其DFT结果的幅度谱。
数字信号处理上机实验一声音信号的频谱分析班级___________________ 学号_____________________ 姓名____________________一、实验目的1、了解声音信号的基本特征2、掌握如何用Matlab处理声音信号3、掌握FFT变换及其应用二、实验原理与方法根据脉动球表面波动方程可知,声压与该球的尺寸和振动的频率的乘积成正比,即声压一定时,球的尺寸越大,振动的频率越小。
可以将此脉动球看作人的声带,人说话的声压变化在0.1~0.6pa的很小范围内,可以看作恒定,所以声带越大,声音频率就越小,反之,声带越小,声音频率就越大。
女子的声带为11~15mm,男子的声带为17~21mm,由此可见,女声频率高,男声频率低,因此听起来女声尖利而男声低沉。
人类歌唱声音频率最大范围的基频:下限可达65.4 Hz,上限可达1046.5 Hz,不包括泛音。
出色的女高音的泛音最高的可达2700hz。
童声:童高音:261.6Hz~880Hz,童低音:196Hz~698.5Hz;女声:女高音:220Hz~1046.5Hz,女低音:174.6Hz~784Hz;男声:男高音:110Hz~523.3Hz,男低音:24.5Hz~349.2Hz。
FFT方法是处理声音信号的基本方法,详细原理参见参考书三、实验内容1、应用Windows录音机录入一段声音文件;2、应用Matlab分析该声音文件的信息,包括采样频率、数据位数,数据格式等;3、应用Matlab画出该声音文件的时域曲线;(如果是双声道数据,只处理左声道数据)4、应用FFT分析该声音文件的频谱信息,并画出频域曲线;5、以100Hz为间隔,在0-1100Hz的基频范围内统计声音能量分布情况,并画出柱形图。
四、思考题1、同一个人不同的声音文件是否具有相同的频谱信号?2、试分析男女声的频谱区别。
3、能否从频谱信号中将自己的声音与其他人的声音区分开来?五、实验报告要求1、简述实验目的及原理2、按实验要求编写Matlab文件,并附上程序及程序运行结果;3、结合所学知识总结实验中的主要结论;4、简要回答思考题。
数字信号处理上机实验报告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 为采样周期。
《数字信号处理》上机实验指导书陈纯锴电子与信息工程学院一、引言“数字信号处理”是一门理论和实验密切结合的课程,为了深入地掌握课程内容,应当在学习理论的同时,做习题和上机实验。
上机实验不仅可以帮助学生深入地理解和消化基本理论,而且能锻炼初学者的独立解决问题的能力。
所以,根据本课程的重点要求编写了四个实验。
第一章是全书的基础内容,抽样定理、时域离散系统的时域和频域分析以及系统对输入信号的响应是重要的基本内容。
由于第一章大部分内容已经在前期《信号与系统》课程中学习完,所以可通过实验一帮助学生温习以上重要内容,加深学生对“数字信号处理是通过对输入信号的一种运算达到处理目的” 这一重要概念的理解。
这样便可以使学生从《信号与系统》课程顺利的过渡到本课程的学习上来。
第二章、三章DFT、FFT是数字信号处理的重要数学工具,它有广泛的使用内容。
采用实验二、实验三加深理解DFT的基本概念、基本性质。
FFT是它的快速算法,必须学会使用。
数字滤波器的基本理论和设计方法是数字信号处理技术的重要内容。
学习这一部分时,应重点掌握IIR和FIR两种不同的数字滤波器的基本设计方法。
IIR滤波器的单位冲激响应是无限长的,设计方法是先设计模拟滤波器,然后再通过S~Z平面转换,求出相应的数字滤波器的系统函数。
这里的平面转换有两种方法,即冲激响应不变法和双线性变换法,后者没有频率混叠的缺点,且转换简单,是一种普遍应用的方法。
FIR滤波器的单位冲激响应是有限长的,设计滤波器的目的即是求出符合要求的单位冲激响应。
窗函数法是一种基本的,也是一种重要的设计方法。
学习完第七章后可以进行实验四。
二、关于使用计算机语言由于数字信号处理实验的主要目的是验证数字信号处理的有关理论,进一步理解巩固所学理论知识。
所以,实现实验用的算法语言可以有许多种,但为了提高实验效率,要求学生用编程效率比C语言高好几倍的MATLAB语言。
下面介绍MATLAB的主要特点。
(有关MATLAB的启动、程序运行和有关信号处理工具箱函数等内容将放到最后附录中介绍。
实验一1-1、a=[-2 0 1 -1 3];b=[1 2 0 -1];c=conv(a,b);M=length(c)-1;n=0:1:M;stem(n,c);xlabel('n');ylabel('幅度');title('离散卷积’);1-2、N=41;a=[0.8 -0.44 0.36 0.22]; b=[1 0.7 -0.45 -0.6];x=[1 zeros(1,N-1)];k=0:1:N-1;y=filter(a,b,x);stem(k,y)xlabel('n');ylabel('幅度'); title('差分方程');1-3、k=256;num=[0.8 -0.44 0.36 0.02];den=[1 0.7 -0.45 -0.6];w=0:pi/k:pi;h=freqz(num,den,w);subplot(2,2,1);plot(w/pi,real(h));gridtitle('实部');xlabel('\omega/\pi');ylabel('幅度'); subplot(2,2,2);plot(w/pi,imag(h));gridtitle('虚部');xlabel('\omega/\pi');ylabel('Amplitude'); subplot(2,2,3);plot(w/pi,abs(h));gridtitle('幅度谱');xlabel('\omega/\pi');ylabel('幅值'); subplot(2,2,4);plot(w/pi,angle(h));gridtitle('相位谱');xlabel('\omega/\pi');ylabel('弧度');实验二2-1、N=16;n=0:1:15;p=8;q=4;a=0.1;f=0.0625;xa=exp(-((n-p).^2)./q);figure(1)stem(n, xa,'.');title('xa(n)序列')xlabel('n')ylabel('xa(n)')grid on[H, w] = freqz(xa, 1, [], 'whole', 1); Hamplitude = abs(H);Hphase = angle(H);Hphase = unwrap(Hphase);figure(2)subplot(2, 1, 1)plot(w, Hamplitude)title('幅频响应')xlabel('w/(2*pi)')ylabel('|H(exp(jw))|') grid onsubplot(2, 1, 2)plot(w, Hphase)title('相频响应')xlabel('w/(2*pi)')ylabel('fai(H(exp(jw)))') grid on2-2、n=0:1:15;a=0.1;f1=0.0625;f2=0.04375;f3=0.05625;xb1=exp(-a*n).*sin(2*pi*f1*n);figuresubplot(3,2,1)stem(n, xb1,'.');title('f=0.0625的时域特性')xlabel('n')ylabel('xb1(n)')grid on[H, w] = freqz(xb1, 1, [], 'whole', 1); Hamplitude = abs(H);subplot(3,2,2)plot(w, Hamplitude)title('f=0.0625的幅频响应')xlabel('w/(2*pi)')ylabel('|H(exp(jw))|')grid onxb2=exp(-a*n).*sin(2*pi*f2*n);subplot(3,2,3)stem(n, xb2,'.');title('f=0.04375的时域特性')xlabel('n')ylabel('xb2(n)')grid on[H, w] = freqz(xb2, 1, [], 'whole', 1); Hamplitude = abs(H);subplot(3,2,4)plot(w, Hamplitude)title('f=0.04375的幅频响应')xlabel('w/(2*pi)')ylabel('|H(exp(jw))|')grid onxb3=exp(-a*n).*sin(2*pi*f3*n);subplot(3,2,5)stem(n, xb3,'.');title('f=0.05625的时域特性')xlabel('n')ylabel('xb3(n)')grid on[H, w] = freqz(xb3, 1, [], 'whole', 1); Hamplitude = abs(H);subplot(3,2,6)plot(w, Hamplitude)title('f=0.05625的幅频响应')xlabel('w/(2*pi)')ylabel('|H(exp(jw))|')grid on2-3、n1=0:1:3;xc1=n1+1;n2=4:7;xc2=8-n2;xc=[xc1,xc2];n =[n1,n2];figurestem(n,xc);xlabel('n'); ylabel('xc');title('三角序列');n1=0:1:3;xd1=4-n1;n2=4:7;xd2=n2-3;xd=[xd1,xd2];n =[n1,n2];figurestem(n,xd);xlabel('n'); ylabel('xd');title('反三角序列');N = 16;[H1,w1] = freqz(xc,1, 256, 'whole', 1); Hamplitude1 = abs(H1);figureplot(2*w1, Hamplitude1)title('xc幅频响应')xlabel('w/pi')ylabel('|H(exp(jw))|')grid on[H2,w2] = freqz(xd,1, 256, 'whole', 1); Hamplitude2 = abs(H2);figureplot(2*w2, Hamplitude2)title('xd幅频响应')xlabel('w/pi')ylabel('|H(exp(jw))|')grid on[H3, w3] = freqz(xc, 1, N, 'whole', 1); Hamplitude3 = abs(H3);figuresubplot(2, 1, 1)h3 = stem(2*w3, Hamplitude3, '*');title('xc幅频响应进行N点FFT’);xlabel('n')ylabel('|H(exp(jw))|')grid on[H4, w4] = freqz(xd, 1, N, 'whole', 1); Hamplitude4 = abs(H4);subplot(2, 1, 2)h4 = stem(2*w4, Hamplitude4, '*');title('xd幅频响应进行N点FFT');xlabel('n')ylabel('|H(exp(jw))|')grid on2-4、N = 128;f1 = 1/16;n = 0:N-1;xn = sin(2*pi*0.125.*n)+ cos(2*pi*(0.125+f1).*n); figurestem(n,xn);figuresubplot(2,1,1),plot(n,abs(fft(xn)));title('f =1/16 幅频响应');f2 = 1/64;xn = sin(2*pi*0.125.*n)+ cos(2*pi*(0.125+f2).*n); subplot(2,1,2),plot(n,abs(fft(xn)));title('f =1/64 幅频响应');2-5、N=16;n=0:1:15;p=8;q=2;a=0.1;f=0.0625;xa=exp(-((n-p).^2)./q);xb=exp(-a*n).*sin(2*pi*f*n);%线性卷积x=conv(xa,xb);XDft= fft(x, 32);XDftR = abs(XDft);XDftPhase = angle(XDft);XDftPhase = unwrap(XDftPhase);figure(1);stem(x,'.');title('x(n)序列');xlabel('n')ylabel('x(n)')grid onfigure(2)subplot(2, 1, 1)stem(XDftR, '.');title('X(k)的幅度’);xlabel('k')ylabel('|X(k)|')grid onsubplot(2, 1, 2)stem(XDftPhase, '.');title('X(k)的相角')xlabel('k')ylabel('fai((X(k)))')grid on%圆周卷积XDft161 = fft(xa, N);XDft16R1 = abs(XDft161);XDft16Phase1 = angle(XDft161);XDft16Phase1 = unwrap(XDft16Phase1); XDft162 = fft(xb, N);XDft16R2 = abs(XDft162);XDft16Phase2 = angle(XDft162);XDft16Phase2 = unwrap(XDft16Phase2); XDft16=XDft161.*XDft162;XDft16R=XDft16R1.*XDft16R2;XDft16Phase=XDft16Phase2 +XDft16Phase1 ; x = ifft(XDft16, N);figure(3)stem(x,'.')title('x(n)序列')xlabel('n')ylabel('x(n)')grid onfigure(4)subplot(2, 1, 1)t= 0 : 1 : N - 1;stem(t, XDft16R, '.');title('X(k)的幅度')xlabel('k')ylabel('|X(k)|')grid onsubplot(2, 1, 2)stem(t,XDft16Phase, '.');title('X(k)的相角')xlabel('k')ylabel('fai((X(k)))')grid on2-6、xe=rand(1,512);n1=0:1:3;xc1=n1+1;n2=4:7;xc2=8-n2;xc=[xc1,xc2];%重叠相加法yn=zeros(1,519);for j=0:7xj=xe(64*j+1:64*(j+1));xak=fft(xj,71);xck=fft(xc,71);yn1=ifft(xak.*xck);temp=zeros(1,519);temp(64*j+1:64*j+71)=yn1; yn=yn+temp;end;n=0:518;figure(1)subplot(2,1,1);plot(n,yn);xlabel('n');ylabel('y(n)');title('xc(n)与xe(n)的线性卷积的时域波形-重叠相加法'); subplot(2,1,2);plot(n,abs(fft(yn)));xlabel('k');ylabel('Y(k)');axis([0,600,0,300]);title('xc(n)Óëxe(n)的线性卷积的幅频特性-重叠相加法'); %重叠保留法k=1:7;xe1=k-k;xe_1=[xe1,xe];yn_1=zeros(1,519);for j=0:7xj_1=xe_1(64*j+1:64*j+71);xak_1=fft(xj_1);xck_1=fft(xc,71);yn1_1=ifft(xak_1.*xck_1);temp_1=zeros(1,519);temp_1(64*j+1:64*j+64)=yn1_1(8:71);yn_1=yn_1+temp_1;end;n=0:518;figure(2)subplot(2,1,1);plot(n,yn_1);xlabel('n');ylabel('y(n)');title(' xc(n)的线性卷积的时域波形-重叠保留法'); subplot(2,1,2);plot(n,abs(fft(yn_1)));xlabel('k');ylabel('Y(k)');axis([0,600,0,300]);title('xc(n)Óëxe(n)的线性卷积的幅频特性-重叠保留法');实验三3-1、Wp=0.3;Ws=0.2;Rp=0.8;Rs=20;[N,Wpo]=cheb1ord(Wp,Ws,Rp,Rs);[Bz,Az]=cheby1(N,Rp,Wpo,'high');w=0:0.1:pi;[H,w1]=freqz(Bz,Az,w);H=20*log10(abs(H));plot(w/pi,H),grid onxlabel('\omega/\pi');ylabel('|H(e^j^\omega)|/dB') title('Chebyshev高通滤波器');3-2、Wp=0.2;Ws=0.3;Rp=1;Rs=25;[N,Wc]=buttord(Wp,Ws,Rp,Rs);[Bs,As]=butter(N,Wc,'s');[Bz,Az]=impinvar(Bs,As);w=0:0.1:pi;[H,w1]=freqz(Bz,Az,w);H=20*log10(abs(H));subplot(211);plot(w/pi,H),grid onxlabel('\omega/\pi');ylabel('|H(e^j^\omega)|/dB') title('脉冲响应不变法')[N,Wc]=buttord(Wp,Ws,Rp,Rs);[Bz,Az]=butter(N,Wc);w=0:0.1:pi;[H,w1]=freqz(Bz,Az,w);H=20*log10(abs(H));subplot(212);plot(w/pi,H),grid onxlabel('\omega/\pi');ylabel('|H(e^j^\omega)|/dB') title('双线性变换法')3-3、Wp=1.2/8;Ws=2/8;Rp=0.5;Rs=40;[N,Wpo]=cheb1ord(Wp,Ws,Rp,Rs);[Bz,Az]=cheby1(N,Rp,Wpo);w=0:0.1:pi;[H,w1]=freqz(Bz,Az,w);H=20*log10(abs(H));subplot(311);plot(w/pi,H),grid onxlabel('\omega/\pi');ylabel('|H(e^j^\omega)|/dB') title('切比雪夫')[N,Wc]=buttord(Wp,Ws,Rp,Rs);[Bz,Az]=butter(N,Wc);w=0:0.1:pi;[H,w1]=freqz(Bz,Az,w);H=20*log10(abs(H));subplot(312);plot(w/pi,H),grid onxlabel('\omega/\pi');ylabel('|H(e^j^\omega)|/dB') title('巴特沃斯')[N,Wpo]=ellipord(Wp,Ws,Rp,Rs);[Bz,Az]=ellip(N,Rp,Rs,Wpo);w=0:0.1:pi;[H,w1]=freqz(Bz,Az,w);H=20*log10(abs(H));subplot(313);plot(w/pi,H),grid ontitle('椭圆')xlabel('\omega/\pi');ylabel('|H(e^j^\omega)|/dB')3-4、Wp1=2/15;Wpu=0.2;Ws1=0.1;Wsu=0.4;Rp=3;Rs=20;Wp=[Wp1,Wpu];Ws=[Ws1,Wsu];[N,Wc]=buttord(Wp,Ws,Rp,Rs);[Bz,Az]=butter(N,Wc);w=0:0.1:pi;[H,w1]=freqz(Bz,Az,w);H=20*log10(abs(H));plot(w/pi,H),grid onxlabel('\omega/\pi');ylabel('|H(e^j^\omega)|/dB') title('双线性变换法Butterworth型数字带通滤波器')。
数字信号处理上机大作业实验一:信号、系统及系统响应(1) 简述实验目的及实验原理。
1.实验目的●熟悉连续信号经理想采样前后的频谱变化关系,加深对时域采样定理的理解。
●熟悉时域离散系统的时域特性。
●利用卷积方法观察分析系统的时域特性。
●掌握序列傅里叶变换的计算机实现方法,利用序列的傅里叶变换对连续信号、离散信号及系统响应进行频域分析。
2.实验原理与方法●时域采样。
● LTI系统的输入输出关系。
(2)按实验步骤附上实验过程中的信号序列、系统单位脉冲响应及系统响应序列的时域和幅频特性曲线,并对所得结果进行分析和解释。
Matlab源程序如下:A=1;T1=1/1000;T2=1/300;T3=1/200;a=25*pi;w0=30*pi;n=0:99;x1=A*exp(-a*n*T1).*sin(w0*n*T1);x2=A*exp(-a*n*T2).*sin(w0*n*T2);x3=A*exp(-a*n*T3).*sin(w0*n*T3);m=linspace(-pi,pi,10000);X1=x1*exp(-j*n'*m);%n'与m构造矩阵,xi向量与矩阵每一列相乘对应元素相加,构成DTFT后的矩阵X2=x2*exp(-j*n'*m);X3=x3*exp(-j*n'*m);figure(1);subplot(3,2,1)plot(m/pi,abs(X1));xlabel('\omega/π');ylabel('|H(e^j^\omega)|');title('采样频率为1000Hz时的幅度谱');subplot(3,2,3)plot(m/pi,abs(X2));xlabel('\omega/π');ylabel('|H(e^j^\omega)|');title('采样频率为300Hz时的幅度谱');subplot(3,2,5)plot(m/pi,abs(X3));xlabel('\omega/π');ylabel('|H(e^j^\omega)|');title('采样频率为200Hz时的幅度谱');subplot(3,2,2)plot(n,abs(x1));xlabel('n');ylabel('x1(t)');title('采样频率为1000Hz时的时域波形');subplot(3,2,4)plot(n,abs(x2));xlabel('n');ylabel('x2(t)');title('采样频率为300Hz时的时域波形');subplot(3,2,6)plot(n,abs(x3));xlabel('n');ylabel('x3(t)');title('采样频率为200Hz时的时域波形');波形图如下:-1-0.8-0.6-0.4-0.200.20.40.60.81ω/π|H (e j ω)|采样频率为1000Hz 时的幅度谱ω/π|H (e j ω)|采样频率为300Hz 时的幅度谱ω/π|H (e j ω)|采样频率为200Hz 时的幅度谱102030405060708090100nx 1(t )采样频率为1000Hz 时的时域波形nx 2(t )采样频率为300Hz 时的时域波形nx 3(t )采样频率为200Hz 时的时域波形② 时域离散信号、 系统和系统响应分析。
实验一:信号的表示一、实验目的:1、了解MATLAB 程序设计语言的基本特点,熟悉MATLAB软件运行环境。
2、掌握各种信号的建模方式。
3、掌握各种信号的图形表示方法。
4、掌握变量等有关概念,具备初步的将一般数学模型转化为对应的计算机模型并进行处理的能力二、实验设备:PC机MATLAB7.0软件三、实验内容学习使用MATLAB7.0软件。
学习信号的图形表示方法,掌握各种信号的建模方式。
实现单位采样序列()nδ、单位阶跃序列()R n、三角波、u n、矩形序列()N方波、锯齿波、Sinc函数。
四、参考实例:常用的MATLAB绘图语句有figure、plot、subplot、stem等,图形修饰语具有title、axis、text等。
(1)figure语句figure有两种用法。
当只有一句figure命令时,程序会创建一个新的图形窗口,并返回一个整数型的窗口编号。
当采用figure(n)时,表示将第n个图形窗口作为当前的图形窗口,将其显示在所有窗口的最前面。
如果该图形窗口不存在,则新建一个窗口,并赋以编号n。
(2)plot语句线形绘图函数。
用法为plot(x,y,’s’)。
参数x为横轴变量,y为纵轴变量,s用以控制图形的基本特征如颜色、粗细等,通常可以省略,常用方法如表1-1所示。
表1-1 plot命令的参数及其含义参数含义参数含义参数含义y 黄色 . 点 - 实线m 紫色 o 圆 : 虚线c 青色 x 打叉 -. 点划线r 红色 + 加号 -- 破折线向上三角形g 绿色 * 星号 ^b 蓝色 s 正方形 < 向左三角形向右三角形w 白色 d 菱形 >向下三角形 p 五角星形k 黑色 v• 功能: 序列左右翻转 • 调用格式:Y = FLIPLR(X) • % X = 1 2 3 翻转后 3 2 1 • 4 5 6 6 5 4 • ★ CUMSUM 、SUM • 功能: 计算序列累加 •调用格式:Y = CUMSUM(X) % 向量X 元素累加,记录每一次的累加结果,而SUM 只记录最后的结果五、实验报告(1)实现单位采样序列()n δ、单位阶跃序列()u n 、矩形序列()NR n ,并用图形显示。