数字信号处理MATLAB实验

合集下载

数字信号处理实验matlab

数字信号处理实验matlab

t=0:9; xn=cos(0.48*pi*t)+cos(0.52*pi*t); N=length(xn); n=0:N-1;k=n;nk=n'*k; wn=exp(-1*j*2*pi/N); wnk=wn.^nk; xk=xn*wnk; %10点dft; figure(2) subplot(3,2,1);plot(t,xn); subplot(3,2,2);stem(n,abs(xk),'.'); %----------------------------------------------------t=0:0.1*pi:10*pi; xn=cos(0.48*pi*t)+cos(0.52*pi*t); N=length(xn); n=0:N-1;k=n;nk=n'*k; wn=exp(-1*j*2*pi/N); wnk=wn.^nk; xk=xn*wnk; subplot(3,2,3);plot(t,xn); subplot(3,2,4);stem(n,abs(xk),'.'); %------------------------------------------------------t=0:99; xn=cos(0.48*pi*t)+cos(0.52*pi*t); N=length(xn); n=0:N-1;k=n;nk=n'*k; wn=exp(-j*2*pi/N); wnk=wn.^nk; xk=xn*wnk; %100点dft; subplot(3,2,5);plot(t,xn); subplot(3,2,6);stem(n,abs(xk),'.');
1、已知信号 x(t) e1000 t ,分别用 FS=5000、1000 对信号进行采样,请画出信 号采样后的波形以及频谱

数字信号处理MATLAB实验

数字信号处理MATLAB实验

(8) 用 FFT 分别计算 xa (n)( p 8, q 2) 和 xb(n) (a=0.1,f=0.0625)的自 相关函数。
三、思考题
(1)实验中的信号序列 xc(n)和 xd(n),在单位圆上的 z 变换频谱
和 一些,为什么?
会相同吗?如果不同,说明哪一个低频分量更多
(2)对一个有限长序列进行 DFT 等价于将该序列周期延拓后进行
五、与本实验有关的 MATLAB 函数 x=sin(2*pi*f/fs*n);生成频率为f,采样频率为fs的正弦信号,式
中,n=[0 1 2 … N]。 sum(X);对于向量X,计算X各元素的和。对于矩阵X,计算X
各列元素之和组成的行向量。 plot(t,y);画出以向量t为坐标的向量y(行或列)的曲线。向
出该信号,并讨论信号的混叠情况。
(3) 令
,其中 f/fs=1/16,即每个周期有 16 个
点。试利用 MATLAB 编程实现:
○1 作 M=4 倍的抽取,使每个周期变成 4 点。
○2 作 L=3 倍的插值,使每个周期变成 48 点。
(4)输入信号 x(n)为归一化频率分别为 f1=0.04,f2=0.3 的正 弦信号相加而成,N=50,插因子为 5,抽取因子为 3,给出 按有理因子 5/3 做采样率变换的输入输出波形。
(1) 简述实验目的及原理。 (2) 按实验步骤附上试验程序。 (3) 按实验容附上有关离散信号的波形或关键样本,对音频信号
给出测听的结果。 (4) 简要回答思考题。 五、 与本实验相关的 MATLAB 函数 y=decimate(x,M);对信号 x 按整数 M 作抽取,抽取前后作抗混叠低 通滤波,结果放在 y 中。 y=interp(x,L); 对信号 x 按整数 L 插零,然后作抗镜像低通滤波, 结果放在 y 中。 y=resample(x,L,M);对信号 x 按有理因子 L/M 作采样率转换,结果 放在 y 中。

数字信号处理matlab实验

数字信号处理matlab实验

目录实验一数字信号的产生和频谱分析实验 (2)一.实验目的 (2)二.实验要求 (2)三.实验原理 (2)四.实验步骤 (3)五.流程图 (3)七.实验结果分析 (6)实验二FIR数字滤波器设计 (7)一.试验目的 (7)二.实验要求 (7)三.实验原理和步骤 (7)四.实验流程图 (7)五.实验波形 (8)六.实验结果分析 (11)实验三IIR数字滤波器设计 (11)一.试验目的 (11)二.实验要求 (11)三.实验原理 (12)四.实验流程图 (12)五.实验波形 (13)六.实验结果分析 (14)实验四模拟调制解调 (14)一.试验目的 (14)二.实验要求 (14)三.实验原理 (15)四.实验流程图 (15)五.实验波形 (16)六.实验结果分析 (17)实验五数字调制解调 (17)一.试验目的 (17)二.实验要求 (17)三.实验原理 (18)四.实验流程图 (18)五.实验波形 (18)六.实验结果分析 (20)实验一数字信号的产生和频谱分析实验一.实验目的1.通过仿真掌握采样定理2.掌握利用FFT进行信号谱分析的原理二.实验要求1. 按照采样定理生成CW信号和LFM信号;2. 画出信号时域波形图和频谱图;3. 生成高斯分布的白噪声;4. 生成一定信噪比的带噪信号,并对其进行谱分析。

三.实验原理1.采样定理:在模拟信号数字化时,需要对模拟信号进行采样,当采样频率fs.max大于信号中最高频率fmax的2倍时(fs.max>=2fmax),采样之后的数字信号完整地保留了原始信号中的信息,否则会发生频谱混叠,造成最后解调出来的信号失真.一般实际应用中保证采样频率为信号最高频率的5~10倍;采样定理又称奈奎斯特定理。

2.快速傅立叶变换(FFT)算法长度为N的序列的离散傅立叶变换为:N点的DFT可以分解为两个N/2点的DFT,每个N/2点的DFT又可以分解为两个N/4点的DFT。

Matlab数字信号处理实验报告

Matlab数字信号处理实验报告

Matlab数字信号处理实验报告本次实验使用MATLAB进行数字信号处理操作,目的是熟悉MATLAB中数字信号处理的相关工具箱,并进一步理解数字信号处理的基本概念和算法。

一、实验内容1.信号的生成与显示2.时域分析和频域分析3.滤波器设计4.数字滤波器性能分析二、实验步骤在MATLAB中,使用sawtooth函数生成一个锯齿波信号,并使用plot函数进行时域波形的显示。

代码如下:f = 1000;fs = 40000;t = 0:1/fs:0.01;y = sawtooth(2*pi*f*t);plot(t,y);xlabel('Time (s)');ylabel('Amplitude');title('Sawtooth Wave');时域分析包括波形的观察和参数分析,如幅值、均值、方差等。

频域分析则是对信号进行傅里叶变换,得到其频谱图,包括频率分布和强度分布。

%时域分析amp = max(y)-min(y);mean_y = mean(y);var_y = var(y);设计一个低通滤波器,将高于1kHz的频率成分滤掉。

对滤波后的信号进行时域分析和频域分析,比较滤波前后信号的特征参数和频谱特征,并绘制原始信号、滤波后信号及其频谱图。

subplot(2,2,1);plot(t,y);xlabel('Time (s)');ylabel('Amplitude');title('Sawtooth Wave');subplot(2,2,2);plot(t,y_filt);xlabel('Time (s)');ylabel('Amplitude');title('Sawtooth Wave After Filter');subplot(2,2,3:4);plot(f2,fft_y_filt,'r',f,fft_y,'g');xlabel('Frequency (Hz)');ylabel('Amplitude');title('Sawtooth Wave Spectrum Comparison');legend('After Filter','Before Filter');三、实验结果与分析通过生成并显示一段锯齿波信号,并对其进行时域和频域分析,可以得到该信号的关键信息,如幅值、均值、方差和频率分布特性。

matlab数字信号处理实验

matlab数字信号处理实验
X(z)= (1-7)
以 代替上式中的Z,就可以得到序列x(n)的傅里叶变换
X( )= (1-8)
式(1—6)和式(1—8)具有如下关系:
=X( )︱ (1-9)
由式(1—9)可知,在分析一个连续时间信号的频谱时,可以通过取样将有关的计算转换为序列傅里叶变换的计算。
(二)有限长序列分析
一般来说,在计算机上不可能,也不必要处理连续的曲线X(e ),通常,我们只观察、分析X(e )在某些频率点上的值。对于长度为N的有限长序列
(1-5)
作为拉氏变换的一种特例,信号理想采样的傅里叶变换
(1-6)
由式(1—5)和式(1—6)可知,信号理想采样后的频谱是原信号频谱的周期延拓,其延拓周期等于采样频率,根据Shannon取样定理,如果原信号是带限信号,且采样频率高于原信号的最高频率分量2倍,则采样以后不会发生频谱混迭现象。
在计算机处理时,不采用式(1—6)计算信号的频谱,而是利用序列的傅里叶变换计算信号的频谱,可以得到序列x(n)的Z变换为:
信号产生子程序:
1、理想采样信号序列xa(n)
n=0:50;
A=444.128;
a=50*sqrt(2.0)*pi;
T=1/1000;
w0=50*sqrt(2.0)*pi;
x=A*exp(-a*n*T).*sin(w0*n*T);
close all
subplot(3,1,1);
stem(x);
title('通信学号理想采样信号序列xa(n)');
贴出最后得到的图形
四:思考:系统最高频率是多少?第一个实验中有无频谱混迭,为什么?第二个实验中有无频谱混迭,为什么?
X=x*(exp(-j*pi/12.5)).^(n'*k);

第一次实验 MATLAB的数字信号处理基础

第一次实验 MATLAB的数字信号处理基础

第一次实验MAT1AB的数字信号处理基础一、实验目的1.掌握在MAT1AB中创建和编写脚本程序的步骤,熟悉在MAT1AB中进行基本的矩阵运算2.了解数字信号在计算机系统中的表示和数字信号处理的基本过程3.掌握用MAT1AB产生数字信号的方法二、实验内容1.熟悉在MAT1AB下创建脚本文件编制程序的方法在MAT1AB中,脚本文件时由一系列的命令构成并储存为.m格式的文件。

通常使用m文件来编写一个完整的仿真程序。

脚本文件的创建,可采用以下两种方式:(1)在菜单栏中选择Fi1e下拉框中New选项,可以新建多种MAT1AB文件,我们编辑仿真程序,通常选择第一项BIankM-Fi1e,即新建一个空的MAT1AB文件。

具体参见下图。

图1(2)采用菜单栏中新建按钮即可新建一个空的MAT1AB文件。

Jk MAT1AB7.9.0(R2009b)Fi1eEditDebugParaJ一一J2.MAT1AB中的数据表示MAT1AB中的基本数据单元为数组矩阵,MAT1AB中的数学运算都是基于矩阵的。

掌握了矩阵运算,就掌握了MAT1AB编程的关键。

MAT1AB中使用到的变量无需事先声明其数据类型,大小等,MAT1AB会自动根据赋值情况进行解析。

比如,可用通过以下命令产生一个矩阵:3.常用序列的MAT1AB实现(1)单位抽样序列。

在MAT1AB中可以用以下函数来实现单位抽样序列function[x,n]=impseq(nθ,n1z n2)%产生x(n)=de1ta(n-n0);n1<=n0<=n2if((nθ<n1)∣(nθ>∩2)∣(n1>n2))error('参数必须满足n1<=nθ<=n2,)endn=[n1:n2];x=[zeros(1,(nO-n1))4∕Zθros(1z(n2-nO))];stem(x);图3(2)单位阶跃序列。

在MAT1AB中可用〃>=0来实现〃(〃一%)。

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

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

Matlab实验报告实验一:1.实验Matlab代码:N=25;Q=0.9+0.3*j;WN=exp(-2*j*pi/N);x=zeros(25,1);format long; %长整型科学计数for k0=1:25x(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,formular');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 DFTn = [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时所得到的谱线非常理想。

《数字信号处理》MATLAB编程实验报告

《数字信号处理》MATLAB编程实验报告

《计算机程序设计基础》实验报告
6
《数字信号处理》实验报告
实验项目 实验类别 基础性 MATLAB 编程语言环境使用 实验学时 4
实 验 目 的 及 要 求
(1) 正确进入 MATLAB 工作环境并熟悉其基本结构 (2) 熟悉其基本操作命令,包括变量的设置、help 命令的使用、结果的 保存与调用等 (3) 编写 M 文件并在环境中运行 (4) 信号与系统工具包使用
正弦信号程序代码
n=0:0.001:100; y=2*sin(0.1*n+pi/8); plot(n,y), grid on
《计算机程序设计基础》实验报告 3
计算机科学与工程学院 axis([0,100,-3,3])
正弦信号 x1(n)=2 sin(0.1n+pi/8)的图像为
复指数信号程序源代码 clear,t0=0;tf=5;dt=0.05;t1=1; t=t0:dt:tf; st=length(t); alpha=-0.5; w=10; x=exp((alpha+j*w)*t); subplot(1,2,1),plot(t,real(x)),grid on; subplot(1,2,2),plot(t,imag(x)),grid on;
复指数信号
x2 (n) Ae(机程序设计基础》实验报告
4
计算机科学与工程学院
思考题
1.说明点乘(.*)运算和乘法运算(*) 有何不同 答:每一个符号变量都被认为是一个元素,不论它的表达式多么复杂。因此如果你仅从符号
的视角出发,那所有的乘法都是点乘!就相当于两个数相乘一样,没有点乘还是差乘的分别。 但是如果一个矩阵是由符号变量组成的。 那么点乘和差乘就有分别了。 数值运算和符号运算都 是一样的,都要考虑点乘还是差乘

数字信号处理MATLAB实验报告

数字信号处理MATLAB实验报告
MATLAB提供了求离散时间系统频响特性的函数freqz,调用freqz的格式主要有两种。一种形式为
[H,w]=freqz(B,A,N)
其中,B与A分别表示 的分子和分母多项式的系数向量;N为正整数,默认值为512;返回值w包含 范围内的N个频率等分点;返回值H则是离散时间系统频率响应 在 范围内N个频率处的值。另一种形式为
[H,w]=freqz(B,A,N,’whole’)
与第一种方式不同之处在于角频率的范围由 扩展到 。
上机练习:
试用MATLAB的residuez函数,求出 的部分分式展开和。
b=[2 16 44 56 32];
a=[3 3 -15 18 -12];
[R,P,K]=residuez(b,a)
R =
+
zplane(B,A)
其中,B与A分别表示 的分子和分母多项式的系数向量。它的作用是在Z平面上画出单位圆、零点与极点。
与拉氏变换在连续系统中的作用类似,在离散系统中,z变换建立了时域函数 与z域函数 之间的对应关系。因此,z变换的函数 从形式可以反映 的部分内在性质。我们仍旧通过讨论 的一阶极点情况,来说明系统函数的零极点分布与系统时域特性的关系。
[R,P,K]=residuez(B,A)
其中,B,A分别表示X(z)的分子与分母多项式的系数向量;R为部分分式的系数向量;P为极点向量;K为多项式的系数。若X(z)为有理真分式,则K为零。
离散时间系统的系统函数定义为系统零状态响应的z变换与激励的z变换之比,即
(4-4)
如果系统函数 的有理函数表示式为
x=iztrans(z)
上式中的x和Z分别为时域表达式和z域表达式的符号表示,可通过sym函数来定义。
如果信号的z域表示式 是有理函数,进行z反变换的另一个方法是对 进行部分分式展开,然后求各简单分式的z反变换。设 的有理分式表示为

matlab 数字信号实验报告

matlab 数字信号实验报告

matlab 数字信号实验报告MATLAB数字信号实验报告摘要:本实验使用MATLAB软件对数字信号进行处理和分析。

首先,我们使用MATLAB生成不同类型的数字信号,并对其进行采样和量化。

然后,我们利用MATLAB对这些数字信号进行滤波、傅里叶变换和频谱分析。

通过本实验,我们可以深入了解数字信号处理的基本原理和方法,并掌握MATLAB在数字信号处理中的应用。

1. 实验目的本实验旨在通过MATLAB软件对数字信号进行处理和分析,加深对数字信号处理原理的理解,掌握MATLAB在数字信号处理中的应用技巧。

2. 实验原理数字信号处理是对数字信号进行处理和分析的技术。

数字信号处理的基本原理包括采样、量化、滤波、傅里叶变换和频谱分析等。

MATLAB是一种强大的工具,可以方便地对数字信号进行处理和分析。

3. 实验内容(1)生成不同类型的数字信号在MATLAB中,我们可以生成不同类型的数字信号,如正弦信号、方波信号和三角波信号等。

通过改变信号的频率、幅度和相位等参数,可以得到不同的数字信号。

(2)采样和量化对生成的数字信号进行采样和量化,得到离散时间信号和离散幅度信号。

(3)滤波利用MATLAB对采样和量化后的数字信号进行滤波处理,去除噪声和干扰,得到清晰的信号。

(4)傅里叶变换和频谱分析对滤波后的数字信号进行傅里叶变换,得到信号的频谱图,分析信号的频率成分和能量分布。

4. 实验结果通过MATLAB对不同类型的数字信号进行处理和分析,得到了清晰的信号波形图和频谱图。

通过对比不同类型的数字信号,我们可以发现它们在频率、幅度和相位等方面的差异。

5. 结论本实验通过MATLAB软件对数字信号进行处理和分析,加深了对数字信号处理原理的理解,掌握了MATLAB在数字信号处理中的应用技巧。

数字信号处理在通信、音频、图像等领域有着广泛的应用,掌握数字信号处理技术对于工程技术人员具有重要的意义。

MATLAB作为一种强大的工具,为数字信号处理提供了便利和高效的解决方案。

《数字信号处理》Matlab实验

《数字信号处理》Matlab实验

《数字信号处理》Matlab 实验一.离散信号的 FFT 分析1.用Matlab 编程上机练习。

已知:N=2^5。

这里Q=0.9+j0.3。

可以推导出 ,首先根据这个式子计算X(k)的理论值,然后计算输入序列x(n)的32个值,再利用基2时间抽选的FFT 算法,计算x(n)的DFT X(k),与X(k)的理论值比较(要求计算结果最少6位有效数字)。

解:函数代码:>> function xn()>> format long>> q=0.9+0.3*i;>> wn=exp(-2*pi*i/32);>> xk=(1-q^32)./(1-q*wn.^[0:31])>>xn=q.^[0:31]>> xk1=fft(xn,32)>>diff=xk-xk1具体执行情况:>> function xn()format longq=0.9+0.3*i;wn=exp(-2*pi*i/32);xk=(1-q^32)./(1-q*wn.^[0:31])xk =Columns 1 through 20.5698 + 3.3840i 2.8369 + 8.8597iColumns 3 through 49.3189 - 9.8673i 1.2052 - 3.5439iColumns 5 through 61.8846 -2.0941i 0.8299 - 1.2413i11,011)()()(k k 10nk 10-=--===∑∑-=-=N k QW Q QW W n x k X N NnN N n N N n ,0.9214 - 1.0753i 0.3150 - 0.0644i Columns 9 through 100.9240 - 0.8060i 0.4202 - 0.2158i Columns 11 through 120.8513 - 0.6357i 0.5040 - 0.1701i Columns 13 through 140.6217 - 0.6931i 0.2441 - 0.8978i Columns 15 through 160.9454 - 0.2800i 0.7139 - 0.3158i Columns 17 through 180.6723 - 0.6496i 0.0263 + 0.5093i Columns 19 through 200.5671 + 0.6914i 0.3173 + 0.9841i Columns 21 through 220.8929 + 0.7792i 0.4066 + 0.8452i Columns 23 through 240.5847 + 0.9017i 0.9129 + 0.9283i Columns 25 through 260.0573 + 0.5531i 0.4219 + 0.9562i Columns 27 through 280.3298 + 0.3143i 0.4513 + 0.2638i0.7214 + 0.1879i 0.0933 + 1.7793iColumns 31 through 320.9483 + 1.9802i 0.4932 + 2.6347i>> xn=q.^[0:31]xn =Columns 1 through 21.0000 0.0000 + 0.0000i Columns 3 through 40.0000 + 0.0000i 0.0000 + 0.0000iColumns 5 through 60.0000 + 0.0000i -0.0000 + 0.0000iColumns 7 through 8-0.0000 + 0.0000i -0.0000 + 0.0000iColumns 9 through 10-0.0000 + 0.0000i -0.0000 + 0.0000iColumns 11 through 12-0.0000 - 0.0000i -0.0000 - 0.0000iColumns 13 through 14-0.2000 - 0.4000i -0.3600 - 0.5200iColumns 15 through 16-0.9680 - 0.1760i 0.4816 - 0.3488i0.2381 - 0.2695i 0.2951 - 0.1711i Columns 19 through 200.1169 - 0.4655i 0.4449 - 0.9838i Columns 21 through 220.6955 + 0.2480i 0.5516 + 0.4319i Columns 23 through 240.3669 + 0.5542i 0.9639 + 0.2088i Columns 25 through 260.3049 + 0.9771i -0.5187 + 0.4709i Columns 27 through 28-0.6081 + 0.2682i -0.1278 + 0.5589i Columns 29 through 30-0.4827 + 0.0647i -0.6538 + 0.5134i Columns 31 through 32-0.8425 - 0.4341i -0.1280 - 0.1434i >> xk1=fft(xn,32)xk1 =Columns 1 through 20.5698 + 3.3839i 2.8366 + 8.8599i Columns 3 through 49.3182 - 9.8692i 1.2051 - 3.5439i1.8845 -2.0942i 0.8298 - 1.2413i Columns 7 through 80.9213 - 1.0754i 0.3150 - 0.0645i Columns 9 through 100.9240 - 0.8060i 0.4202 - 0.2158i Columns 11 through 120.8514 - 0.6356i 0.5040 - 0.1701i Columns 13 through 140.6217 - 0.6931i 0.2441 - 0.8977i Columns 15 through 160.9454 - 0.2800i 0.7139 - 0.3159i Columns 17 through 180.6723 - 0.6496i 0.0263 + 0.5093i Columns 19 through 200.5671 + 0.6913i 0.3172 + 0.9840i Columns 21 through 220.8929 + 0.7792i 0.4065 + 0.8452i Columns 23 through 240.5846 + 0.9016i 0.9129 + 0.9283i Columns 25 through 260.0572 + 0.5531i 0.4219 + 0.9563i0.3297 + 0.3144i 0.4512 + 0.2638iColumns 29 through 300.7213 + 0.1879i 0.0932 + 1.7793iColumns 31 through 320.9480 + 1.9802i 0.4928 + 2.6347i>> diff=xk-xk1diff =1.0e-013 *Columns 1 through 20.4625 + 0.8501i 0.9504 - 0.4003iColumns 3 through 40.6010 + 0.4028i 0.4752 + 0.7001iColumns 5 through 60.5502 + 0.8501i 0.4625 + 0.8501iColumns 7 through 80.7751 + 0.9250i 0 + 0.3875i Columns 9 through 100.7751 - 0.4625i 0.3126 - 0.4625iColumns 11 through 12-0.4625 - 0.3126i 0.4625 + 0.3875iColumns 13 through 14-0.9250 + 0.6938i 0.3875 - 0.0781iColumns 15 through 160.3875 - 0.6156i 0 + 0.9641iColumns 17 through 180.9250 - 0.7598i -0.4625 - 0.0422iColumns 19 through 200.4625 + 0.1172i 0.4625 + 0.3094iColumns 21 through 220.9250 + 0.4625i 0.9250 + 0.2313iColumns 23 through 240.3875 + 0.1563i 0.3875 - 0.2313iColumns 25 through 260.8501 -0.9250 - 0.4625iColumns 27 through 280.0127 - 0.7751i 0.7001 - 0.9250iColumns 29 through 300.1626 0.7814 - 0.9250iColumns 31 through 320.4816 + 0.9250i 0.7255 - 0.8501i由以上结果可知,由基2时间抽选的FFT算法所得到的DFT结果与利用公式法所得的理论值稍有偏差,但误差较小,从结果可以看出大概在小数点第15位才开始出现误差,故而用计算机FFT处理数据在精度上是可以接受的。

精品文档-数字信号处理实验(MATLAB版)刘舒帆-第21章

精品文档-数字信号处理实验(MATLAB版)刘舒帆-第21章
set(gca,¢YTickMode¢,¢manual¢,¢YTick¢,[-50, -15,-1,0]);grid
subplot(2,2,4),zplane(bd,ad); axis([-1.1,1.1,-1.1,1.1]);title(¢零极图¢);
14
程序运行结果如下: n= 5 Omgc=103.2016 bd=0.0072 0.0362 0.0725 0.0725 0.0362 0.0072 ad=1.0000 -1.9434 1.9680 -1.0702 0.3166 - 0.0392 sos=1.0000 1.0036 0 1.0000 -0.3193 0
%计算阶数n和截止频率 [z0,p0,k0]=buttap(n);%归一化原型设计
10
ba=k0*real(poly(z0));%求原型滤波器系数b aa=real(poly(p0));%求原型滤波器系数a [ba1,aa1]=lp2lp(ba,aa,Omgc);%变换为模拟低
通滤波器系数b,a %注意,以上4行求滤波器系数ba1、aa1的程序,可由下一 条程序替代 %[ba1,aa1]=butter(n,Omgc,¢s¢);%直接求模拟
12
set(gca,¢XTickMode¢,¢manual¢,¢XTick¢,[0, 0.25,0.4,1]);
set(gca,¢YTickMode¢,¢manual¢,¢YTick¢,[0, Attn,ripple,1]);grid
subplot(2,2,2),plot(w/pi,angle(H)/pi); ylabel(¢\phi¢);title(¢相位响应¢);axis([0,1, -1,1]); set(gca,¢XTickMode¢,¢manual¢,¢XTick¢,[0, 0.25,0.4,1]); set(gca,¢YTickMode¢,¢manual¢,¢YTick¢,[-1,0, 1]);grid

实验一基于Matlab的数字信号处理基本分析解析

实验一基于Matlab的数字信号处理基本分析解析

实验一 基于Matlab 的数字信号处理基本操作一、 实验目的:学会运用MA TLAB 表示的常用离散时间信号;学会运用MA TLAB 实现离散时间信号的基本运算。

二、 实验仪器:电脑一台,MATLAB6.5或更高级版本软件一套。

三、 实验内容:(一) 离散时间信号在MATLAB 中的表示离散时间信号是指在离散时刻才有定义的信号,简称离散信号,或者序列。

离散序列通常用)(n x 来表示,自变量必须是整数。

离散时间信号的波形绘制在MATLAB 中一般用stem 函数。

stem 函数的基本用法和plot 函数一样,它绘制的波形图的每个样本点上有一个小圆圈,默认是空心的。

如果要实心,需使用参数“fill ”、“filled ”,或者参数“.”。

由于MATLAB 中矩阵元素的个数有限,所以MA TLAB 只能表示一定时间范围内有限长度的序列;而对于无限序列,也只能在一定时间范围内表示出来。

类似于连续时间信号,离散时间信号也有一些典型的离散时间信号。

1. 单位取样序列单位取样序列)(n δ,也称为单位冲激序列,定义为)0()0(01)(≠=⎩⎨⎧=n n n δ要注意,单位冲激序列不是单位冲激函数的简单离散抽样,它在n =0处是取确定的值1。

在MATLAB 中,冲激序列可以通过编写以下的impDT .m 文件来实现,即function y=impDT(n)y=(n==0); %当参数为0时冲激为1,否则为0调用该函数时n 必须为整数或整数向量。

【实例1-1】 利用MATLAB 的impDT 函数绘出单位冲激序列的波形图。

解:MATLAB 源程序为>>n=-3:3; >>x=impDT(n);>>stem(n,x,'fill'),xlabel('n'),grid on >>title('单位冲激序列') >>axis([-3 3 -0.1 1.1])程序运行结果如图1-1所示。

数字信号处理实验报告MATLAB

数字信号处理实验报告MATLAB

数字信号处理实验报告姓名:班级:09电信一班学号:2)]得下图二,图二图一3.将如下文件另存为:sigadd.m文件function [y,n] = sigadd(x1,n1,x2,n2)% 实现y(n) = x1(n)+x2(n)% -----------------------------% [y,n] = sigadd(x1,n1,x2,n2)% y = 在包含n1 和n2 的n点上求序列和,% x1 = 在n1上的第一序列% x2 = 在n2上的第二序列(n2可与n1不等)n = min(min(n1),min(n2)):max(max(n1),max(n2)); % y(n)的长度y1 = zeros(1,length(n)); y2 = y1; % 初始化y1(find((n>=min(n1))&(n<=max(n1))==1))=x1; % 具有y的长度的x1y2(find((n>=min(n2))&(n<=max(n2))==1))=x2; % 具有y的长度的x2y = y1+y2;在命令窗口输入:x1=[1,0.5,0.3,0.4];n1=-1:2;x2=[0.2,0.3,0.4,0.5,0.8,1];n2=-2:3; [y,n] = sigadd(x1,n1,x2,n2)得:y =n=-1:10;x=sin(0.4*pi*n);y=fliplr(x);n1=-fliplr(n);subplot(2,1,1),stem(n,x) subplot(2,1,2),stem(n1,y在命令窗口键入:n=-1:10; x=sin(0.4*pi*n);n (samples)实验结果:1.(1)在命令窗口输入:tic; [am,pha]=dft1(x)N=length(x);w=exp(-j*2*pi/N);for k=1:Nsum=0;for n=1:Nsum=sum+x(n)*w^((k-1)*(n-1));endam(k)=abs(sum);pha(k)=angle(sum);end;toc得到如下结果:am =Columns 1 through 11120.0000 41.0066 20.9050 14.3996 11.3137 9.6215 8.6591 8.1567 8.0000 8.1567 8.6591Columns 12 through 169.6215 11.3137 14.3996 20.9050 41.0066pha =Columns 1 through 110 1.7671 1.9635 2.1598 2.3562 2.5525 2.7489 2.9452 3.1416 -2.9452 -2.7489Columns 12 through 16-2.5525 -2.3562 -2.1598 -1.9635 -1.7671Elapsed time is 0.047000 seconds.(2)在命令窗口输入:tic;[am,pha]=dft2(x)N=length(x);n=[0:N-1];k=[0:N-1];w=exp(-j*2*pi/N);nk=n’*k;wnk=w.^(nk); Xk=x*wnk; am= abs(Xk); pha=angle(Xk); toc得到下图:figure(1)00.10.20.30.40.50.60.70.80.91signal x(n), 0 <= n <= 99(2)在命令窗口键入:n3=[0:1:99];y3=[x(1:1:10) zeros(1,90)]; %添90个零。

数字信号处理实验(matlab)

数字信号处理实验(matlab)

北京邮电大学DSP之matlab实验1实验题目2. 程序分析实验一(源代码及分析)A=zeros(1,25)c=complex(0.9,0.3)for i=1:1:25A(i)=c^iendn=0:24k=0:24WN=exp(-j*2*pi/25)nk=n'*kWNnk=WN.^nkX=A*WNnk;%X(k)为用定义算法计算的DFT值%下面为32点运算for i=26:1:32A(i)=0endn=0:31k=0:31WN=exp(-j*2*pi/32)nk=n'*kWNnk=WN.^nkX=A*WNnk%下面为32点蝶形运算k1=bin2dec(fliplr(dec2bin([1:32]-1,5)))+1%得到从1到32的倒序顺序B=A(k1)%得到倒序后的A,将其赋给Bfor mm=1:5 %将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:32 %本次碟形运算的跨越间隔为Nmr=2^mmkp=k+Nmr/2; %确定碟形运算的对应单元下标(对称性)t=B(kp)*u; %碟形运算的乘积项B(kp)=B(k)-t; %碟形运算的加法项B(k)=B(k)+t;endu=u*WN; %修改旋转因子,多乘一个基本DFT因子WNendend实验二(源代码及分析)for i=1:1:1000x(i)=0.001*cos(0.45*i*pi)+sin(0.3*i*pi)-cos(0.302*i*pi-4/pi)endX=fft(x);k=0:500;w=2*pi/1000*k;stem(w/pi,abs(X(1:501)))axis([0.25 0.35 490 510])axis([0.3 0.5 0 0.8]) 3. 程序运行结果实验一程序运行结果太长,只附一截图如下:实验二结果的有窗与无窗图如下:4. 总结本次实验是第一次使用matlab,实验过程中遇到了不少的问题,经过和同学们的交流以及通过网络查询,最后得到了结果。

数字信号处理(MATLAB版)上机实验操作

数字信号处理(MATLAB版)上机实验操作

实验一离散时间信号与系统一、实验目的:1、熟悉常见离散时间信号的产生方法;2、熟悉离散时间系统的单位脉冲响应和单位阶跃响应的求解方法;3、熟悉离散时间信号经过离散时间系统的响应的求解方法。

二、实验内容:已知离散时间系统差分方程为y(n)-0.5y(n-1)+0.06y(n-2)=x(n)+x(n-1),求1、该系统的单位脉冲响应并绘图;2、该系统的单位阶跃响应并绘图;3、已知x(n)=可自己指定用filter函数经过系统的响应并绘图;4、用conv_m函数求系统响应并绘图。

三、实验平台:MA TLAB集成系统四、设计流程:此处写个人自己的设计流程五、程序清单:此处写程序内容六、调试和测试结果:此处写程序的执行结果和实验过程中的调试经过、出现的错误和对应的解决方法七、教师评语与成绩评定此处由老师填写上机操作:实验一离散时间信号与系统实验内容:1.脉冲响应>> b =[1,1]; a = [1,-0.5,0.06];n = [-10:25];>> impz(b,a,n);>> title('Impulse Response'); xlabel('n'); ylabel('h(n)')2.单位阶跃响应>> x = stepseq(0,-10,25); s = filter(b,a,x);Warning: Function call stepseq invokes inexact match d:\MATLAB7\work\STEPSEQ.M.>> stem(n,s)>> title('Step Response'); xlabel('n');ylabel('s(n)')3.>> a=[1,-0.5,0.06];b=[1,1];>> n=-20:120;>> x1=exp(-0.05*n).*sin(0.1*pi*n+pi/3);>> s1=filter(b,a,x1);>> stem(n,s1);;xlabel('n');ylabel('s1(n)');4.>> a=[1,-0.5,0.06];b=[1,1];>> n=-20:120;>> h=impz(b,a,n);>> x1=exp(-0.05*n).*sin(0.1*pi*n+pi/3);>> [y,m]=conv_m(x1,n,h,n);Warning: Function call conv_m invokes inexact match d:\MATLAB7\work\CONV_M.M. >> stem(m,y);title('系统响应');xlabel('m');ylabel('y(m)');实验二离散信号与系统的连续频域分析一、实验目的:1、掌握离散时间信号的DTFT的MATLAB实现;2、掌握离散时间系统的DTFT分析;3、掌握系统函数和频率相应之间的关系。

数字信号处理实验报告MATLAB

数字信号处理实验报告MATLAB

实验2 离散时间信号的频谱分析1、实验内容一、编写子函数计算长度为N 的序列x(n) ( 0≤n ≤ N-1)的离散时间傅里叶变换,将频率均匀离散化, 一个周期内有M 个点。

要求画出虚部、实部、幅度、相位,并标注坐标轴。

二、对矩形序列x(n)=RN(n)1. 用公式表示x(n)的频谱,求出其幅度谱和相位谱;2. 利用编写的子函数,计算并画出x(n)的频谱1)固定M ,改变N ,观察N 的取值对频谱的最大值、过零点、第一旁瓣幅度与最大值的比值以及相位谱的影响;2)固定N ,改变M ,观察M 的取值对幅度谱和相位谱的影响。

如: M=4,26,100N=4,26,100三、利用子函数,画出信号x(n)=sin(pi*n/5)和 x(n)=cos(pi*n/4)+cos(pi*n/8) ( 0≤n ≤ N -1)的幅度谱和相位谱。

N 分别取为8,16,20,64,75,128,M=256。

观察N 取不同值时信号频谱的相同和不同之处,为什么会有这样的结果。

2、编程原理、思路和公式(1)、给定长度为N 的序列x(n)的离散时间傅里叶变换(DTFT )的公式为 10()()N jwjwn n X e x n e --==∙∑ 1()()2j w j w n x n X e e d w πππ-=⎰。

可以看出x(n)的DTFT 仍然是一个连续函数,所以需要将数字角频域w 离散化,设一个频率周期内离散点有M 个,则第k 个点所代表的数字角频率2w k M π=。

这样x(n)的DTFT 变成:2210()()()N j k j nk jw M M n X e X e x n eππ--===∙∑ 01k M ≤≤-,(2)、因为0≤.n ≤.N-1, 01k M ≤≤- 设置两层for 循环,用sum 表示累加求和的值,即可实现2210()()()N j k j nk jw MM n X e X e x n eππ--===∙∑(3)对矩形序列x(n)=R4(n),首先固定M 不变,改变N 的取值。

《基于MATLAB的数字信号处理》实验报告

《基于MATLAB的数字信号处理》实验报告

0.60007.0000-5.4000所以,X=[错误!未找到引用源。

]=[ 0.6000, 7.0000, -5.4000]’实验结果2:K=1.732051实验结果3:三曲线的对比图如下所示:图1.1 三曲线的对比实验二基于MATLAB信号处理实验xlabel('频率/Hz');ylabel('振幅/dB');title('布莱克窗的幅频特性');grid on;subplot(2,1,2);plot(f4,180/pi*unwrap(angle(H4)));xlabel('频率/Hz');ylabel('相位');title('布莱克窗的相频特性');grid on;六、实验结果实验结果2.1:图2-1 x(n)与y(n)的互相关序列图由实验结果可知,x(n)与y(n)的互相关只在区间[-4,8]上有能力,刚好是区间[-3,3]与右移后的区间[-1,5]两端点之和,与结论一致。

且互相关在2处达到最大。

实验结果2.2.1:其表示的差分方程为:y(n)-0.8145y(n-4)=x(n)+x(n-4)实验结果2.2.2:滤波器的幅频和相频图如下所示:图2-2 滤波器的幅频与相频图实验结果2.2.3:由下图实验结果可知,输出信号相对于输入信号有一小小的延迟,基本上x(n)的频点都通过了,滤波器是个梳状filter,正好在想通过的点附近相位为0,也就是附加延迟为0图2-3 滤波器的幅度和相位变化图2-4 两信号波形实验结果2.3:四种带通滤波器的窗函数的频率响应如下所示:图2-5 矩形窗的频率特性图2-6 汉宁窗的频率特性图2-7 海明窗的频率特性图2-8 布莱克曼窗的频率特性图3-1 加噪前、后图像对比图3-2 加椒盐噪声的图像均值滤波前、后的图像对比图3-3 加椒盐噪声的图像中值滤波前、后的图像对比图3-4加高斯噪声的图像均值滤波前、后的图像对比图3-5 加高斯噪声的图像中值滤波前、后的图像对比实验结果3.2:图3-6 原图及重构图像图3-7 程序运行结果由实验结果可知,当DCT变换的系数置0个数小于5时,重构图像与原图像的峰值信噪比为2.768259,重构图像置为0的变换系数的个数个数为:43.708737;当DCT变换的系数置0个数小于10时,重构图像与原图像的峰值信噪比15.922448,重构图像置为0的变换系数的个数个数为:36.110705;当DCT变换的系数置0个数小于5时,重构图像与原图像的峰值信噪比为2.768259,重构图像置为0的变换系数的个数个数为:30.366348;可以发现,在抛弃部分DCT系数后,重构图像时不会带来其画面质量的显著下降,采用这种方法来实现压缩算法时,可以通过修改mask变量中的DCT系数来更好地比较仿真结果。

Matlab数字信号处理实验报告

Matlab数字信号处理实验报告
subplot(2,1,2); plot(n,X); grid title('FFT|X|'); xlabel('f(pi)');
实验 2-3
n=0:30;%输入x(n)和冲激响应 h(n) x=zeros(1,length(n)); h=zeros(1,length(n)); x([find((n>=0)&(n<=4))] ) =1; h([find((n>=0)&(n<=8))] ) =0.5; subplot(3,1,1); stem(x); title('x(n)'); axis([0,30,0,2]); subplot(3,1,2); stem(h); title('h(n)'); axis([0,30,0,2]); X=fft(x); H=fft(h); Y=X.*H; y=ifft(Y); subplot(3,1,3);
变换及 h(n) 的 Z 变换,则
H (z) zesT

1 T

Ha (s
m
j
2 T
m)
(2) 双线性变换法
s
平面与
z
平面之间满足以下映射关系:
s

2 T
1 1

z 1 z 1
s 平面的虚轴单值地映射于 z 平面的单位圆上,s 平面的左半平面完全映射 到 z 平面的单位圆内。双线性变换不存在混叠问题。双线性变换时一种非线性变
subplot(3,1,2); stem(n,h); axis([0,30,0,2]); title('冲激响应序列'); xlabel('n'); ylabel('h(n)');

matlab 数字信号实验报告

matlab 数字信号实验报告

matlab 数字信号实验报告数字信号处理是现代通信和信息处理领域的重要技术之一。

在数字信号处理中,Matlab是一种常用的工具,它提供了丰富的函数和工具箱,可以方便地进行信号分析和处理。

本文将介绍我在数字信号实验中使用Matlab的经验和成果。

1. 实验背景和目的数字信号处理实验是我们学习数字信号处理课程的重要环节。

通过实验,我们可以巩固理论知识,掌握实际应用技巧,并深入了解数字信号处理的原理和方法。

本次实验的目的是通过Matlab编程实现一些数字信号处理的基本操作,如信号的采样、量化、傅里叶变换等,并对实验结果进行分析和展示。

2. 实验过程和方法2.1 信号的生成与显示首先,我们需要生成一个信号并在Matlab中进行显示。

可以使用Matlab提供的函数生成各种类型的信号,如正弦信号、方波信号等。

生成信号后,我们可以使用plot函数将信号绘制出来,以便观察和分析。

2.2 信号的采样与重构在数字信号处理中,采样是将连续时间信号转换为离散时间信号的过程。

我们可以使用Matlab的采样函数对信号进行采样,并通过plot函数将采样后的信号绘制出来。

此外,我们还可以使用重构函数对采样信号进行重构,以还原原始信号。

2.3 信号的量化与编码量化是将连续信号的幅度转换为离散值的过程。

在Matlab中,我们可以使用quantize函数对信号进行量化,并使用code函数对量化后的信号进行编码。

通过观察和分析编码后的信号,我们可以了解信号的失真情况以及编码效率。

2.4 信号的滤波与频谱分析滤波是数字信号处理中常用的操作之一。

在Matlab中,我们可以使用fir1函数设计滤波器,并使用filter函数对信号进行滤波。

此外,我们还可以使用fft函数对信号进行频谱分析,以观察信号的频谱特性。

3. 实验结果和分析通过实验,我们可以得到一系列实验结果,并对其进行分析和展示。

例如,我们可以绘制原始信号和采样信号的波形图,并对其进行比较和分析。

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

实验一熟悉MATLAB环境一、实验目的(1)熟悉MATLAB的主要操作命令。

(2)学会简单的矩阵输入与数据读写。

(3)掌握简单的绘图命令。

(4)用MATLAB编程并学会创建函数。

(5)观察离散系统的频率响应。

二、实验内容认真阅读本章附录,在MATLAB环境下重新做一遍附录中的例子,体会各条命令的含义。

在熟悉了MATLAB基本命令的基础上,完成以下实验。

上机实验内容:(1)数组的加、减、乘、除与乘方运算。

输入A=[1 2 3 4],B=[3 4 5 6],求C=A+B,D=A-B,E=A、*B,F=A、/B,G=A、^B并用stem语句画出A、B、C、D、E、F、G。

(2)用MATLAB实现以下序列。

a)x(n)=0、8n0≤n≤15b)x(n)=e(0、2+3j)n0≤n≤15c)x(n)=3cos(0、125πn+0、2π)+2sin(0、25πn+0、1π) 0≤n≤15d)将c)中的x(n)扩展为以16为周期的函数x16(n)=x(n+16),绘出四个周期。

e)将c)中的x(n)扩展为以10为周期的函数x10(n)=x(n+10),绘出四个周期。

(3)x(n)=[1,-1,3,5],产生并绘出下列序列的样本。

a)x 1(n)=2x(n+2)-x(n-1)-2x(n)b)∑=-=51k 2)k n (nx (n) x(4)绘出下列时间函数的图形,对x 轴、y 轴以及图形上方均须加上适当的标注。

a) x(t)=sin(2πt) 0≤t ≤10s b) x(t)=cos(100πt)sin(πt) 0≤t ≤4s(5)编写函数stepshift(n0,n1,n2)实现u(n-n0),n1<n0<n2,绘出该函数的图形,起点为n1,终点为n2。

(6)给定一因果系统)0.9z 0.67z -1)/(1z 2(1H(z)-2-1-1+++=求出并绘制H(z)的幅频响应与相频响应。

(7)计算序列{8 -2 -1 2 3}与序列{2 3 -1 -3}的离散卷积,并作图表示卷积结果。

(8)求以下差分方程所描述系统的单位脉冲响应h(n), 0≤n<50y(n)+0、1y(n-1)-0、06y(n-2)=x(n)-2x(n-1)三、思考题(1)对于有限长序列,如何用MATLAB 计算其DTFT ?(2)对于由两个子系统级联或并联的系统,如何用MATLAB 计算它们的幅频响应与相频响应?四、实验报告要求(1)简述实验目的及原理。

(2)按实验步骤附上实验程序。

(3)按实验步骤附上有关离散系统的频率特性曲线。

(4)简要回答思考题。

五、与本实验有关的MATLAB 函数x=sin(2*pi*f/fs*n);生成频率为f,采样频率为fs 的正弦信号,式中,n=[0 1 2 … N]。

sum(X);对于向量X,计算X各元素的与。

对于矩阵X,计算X各列元素之与组成的行向量。

plot(t,y);画出以向量t为坐标的向量y(行或列)的曲线。

向量t与向量y具有相同的维数。

命令plot(s1,t1,s2,t2,s3,t3);将在同一图上画出分别以t1,t2,t3为坐标的向量s1,s2,s3的曲线。

xlabel(‘samples’);在x轴上加上标注。

ylabel(‘amplitude’);在y轴上加上标注。

title(‘sinusoidal signal’);在图的上部加上标题。

y=conv(h,x);计算向量h与x的卷积,结果放在y中。

y=filter(b,a,x);以向量b与a为参数的滤波器对输入信号向量x进行滤波处理。

h=impz(b,a,N);计算b与a为参数的N点滤波器脉冲响应。

[H,f]=freqz(b,a,N,Fs);给定以Hz为单位的采样频率Fs,计算以(b,a)为参数的滤波器N点频率向量f与N点复频率向量H。

该命令用于绘制滤波器的幅频与相频响应。

如果省略左边的[H,f],该命令将直接绘出滤波器的对数幅频与相频响应。

实验二信号的采样与重建一、实验目的(1)在学习本章内容的基础上,通过实验加强本章内容的有关信号采样与重建的基本概念,熟悉相关MATLAB函数。

(2)通过观察采样信号的混叠现象,进一步理解奈奎斯特采样频率的意义。

(3)通过实验,了解数字信号采样率转换过程中的频谱特性。

(4)对实际的音频文件做内插与提取操作,体会低通滤波器在内插与提取中的作用。

二、实验内容认真阅读相关的MATLAB函数帮助文件。

再熟悉MATLAB函数的基础上,完成以下试验。

上机实验内容:(1)一信号就是三个正弦信号的与,正弦信号的频率分别为50、500、1000Hz,该信号以8kHz采样。

用适当数量的样本画出该信号。

(2)一信号就是三个正弦信号的与,正弦信号的频率分别为50、500、1000Hz,该信号以800Hz采样。

用适当数量的样本画出该信号,并讨论信号的混叠情况。

(3)令,其中f/fs=1/16,即每个周期内有16个点。

试利用MATLAB编程实现:○1作M=4倍的抽取,使每个周期变成4点。

○2作L=3倍的插值,使每个周期变成48点。

(4)输入信号x(n)为归一化频率分别为f1=0、04,f2=0、3的正弦信号相加而成,N=50,内插因子为5,抽取因子为3,给出按有理因子5/3做采样率变换的输入输出波形。

(5)常见的音频文件采样率为44、1khz。

请找一个wav格式、采样率为44、1khz的音频文件,用MATLAB编写程序,把它转换为采样率为48、32、22、05、16与8khz的音频文件,用播放器分别进行播放,比较音质的变化,并解释原因。

(6)请找一个wav格式、采样率为11、025khz的音频文件,用MATLAB编写程序,把它转换为采样率为44、1khz的音频文件,采用两种方法:○1直接插零;○2插零后滤波(可直接利用MATLAB相关函数), 用播放器分别进行播放,比较音质的变化,并解释原因。

三、思考题(1)试说明对于周期信号,应当如何采样,才能保证周期扩展后与原信号保持一致。

(2)模拟抗混叠滤波器的指标就是如何确定的,欠采样的情况下就是否需要模拟抗混叠滤波器?(3)抽取就是否会造成信号频谱成分的缺失?为什么还要这样做?四、实验报告及要求(1)简述实验目的及原理。

(2)按实验步骤附上试验程序。

(3)按实验内容附上有关离散信号的波形或关键样本,对音频信号给出测听的结果。

(4)简要回答思考题。

五、与本实验相关的MATLAB函数y=decimate(x,M);对信号x按整数M作抽取,抽取前后作抗混叠低通滤波,结果放在y中。

y=interp(x,L); 对信号x按整数L插零,然后作抗镜像低通滤波,结果放在y中。

y=resample(x,L,M);对信号x按有理因子L/M作采样率转换,结果放在y中。

[y,fs,bits]=wavread(‘’);读取音频波形文件,这里y就是声音的数组,fs就是声音的采样频率,bits就是采样样本的二进制位数。

wavwrite(y,fs,bits, ‘’);将声音的数组y写入音频波形文件,fs就是声音的采样频率bits就是采样样本的二进制位数。

实验三快速傅立叶变换及其应用一、实验目的(1)在理论学习的基础上,通过本实验,加深对FFT的理解,熟悉MATLAB中函数。

(2)熟悉应用FFT对典型信号进行频谱分析的方法。

(3)了解应用FFT进行信号频谱分析过程中可能出现的问题,以便在实际中正确应用FFT。

(4)熟悉应用FFT实现两个序列的线性卷积与相关。

二、实验内容实验中用到的信号序列:高斯序列衰减正弦序列三角波序列反三角波序列上机实验内容:(1)观察高斯序列的时域与幅频特性,固定信号xa(n)中参数p=8,改变q的值,使q分别等于2、4、8,观察她们的时域与频域特性,了解当q 取不同值时,对信号时域频域特性的影响;固定q=8,改变p,使p分别等于8,13,14,观察参数p变化对信号序列的时域与频域特性的影响,注意当p=多少时会发生明显的泄漏现象,混叠就是否也随时出现?记录实验中观察到的现象,绘出相应的时域序列与幅频特性曲线。

(2)观察衰减正弦序列xb(n)的时域与幅频特性。

=0、1,f=0、0625,检查谱峰出现位置就是否正确,注意频谱的形状,绘出幅频特性曲线,改变f,使f 分别等于0、4375 与0、5625,观察这两种情况下,频谱的形状与谱峰出现位置,有无混叠与泄露现象?说明产生现象的原因。

(3)观察三角波与反三角波序列的时域与幅频特性,用N=8点FFT 分析信号序列xc(n)与xd(n)的幅频特性,观察两者的序列情况与频谱曲线有什么异同?绘出两序列及其幅频特性曲线。

在xc(n)与xd(n)末尾补零,用N=32点FFT分析这两个信号的幅频特性,观察幅频特性发生了什么变化?这些变化说明了什么?(4)一个连续信号含有两个频率分量,经采样得已知N=16,Δf 分别为1/16与1/64,观察其频谱;当N=128时,Δf 不变,其结果有何不同,为什么?(5)用FFT 分别计算xa(n) (p=8,q=2)与xb(n) (a=0、1,f=0、0625)的16点循环卷积与线性卷积。

(6)产生一512点的随机序列xe(n),并用xc(n)与xe(n)做线性卷积,观察卷积前后xe(n)频谱的变化。

要求将xe(n)分成8段,分别采用重叠相加法与重叠保留法。

(7) 用FFT 分别计算)2,8)((==q p n x a 与xb(n) (a=0、1,f=0、0625)的16点循环相关与线性相关,问一共有多少种结果,她们之间有何异同点。

(8) 用FFT 分别计算)2,8)((==q p n x a 与xb(n) (a=0、1,f=0、0625)的自相关函数。

三、思考题(1)实验中的信号序列xc(n)与xd(n),在单位圆上的z 变换频谱与会相同不?如果不同,说明哪一个低频分量更多一些,为什么?(2)对一个有限长序列进行DFT 等价于将该序列周期延拓后进行DFS 展开,因为DFS 也只就是取其中一个周期来运算,所以FFT 在一定条件下也可以用于分析周期信号序列。

如果时正弦序列,f=0、1用16点FFT来作DFS运算,得到的频谱就是信号本身的真实谱不?为什么?四、实验报告要求(1)简述实验目的及原理。

(2)按实验步骤附上实验信号序列与幅频特性曲线,分析所得到的图形,说明参数改变对时域与频域的影响。

(3)总结实验中的主要结论。

(4)简要回答简答题。

五、与本实验相关的MATLAB函数y=exp(X);对向量X的各元素做指数运算,结果为一向量。

conj(X); 对向量X的各元素做复共轭运算,即将虚部改变符号。

real(X);对向量X的各元素取其实部。

v=randn(size(X));生成同X具有相同维数的正态分布的随机矩阵,通常用于生成高斯白噪声。

相关文档
最新文档