北邮matlab实验四,北邮《数字信号处理》Matlab实验-实验一.docx

《数字信号处理》Matlab实验报告

实验一

班级:2011211114班内序号:27姓名:周园学号:2011210413实验一:实现重叠相加和重叠保留算法,完成线性卷积的分段计算(可任意指定及);1、对算法的概括性说明 对如图1所示的线性非移变离散系统而言,可由线性卷积表示其时域上的输入输出关系,即y(n)=x(n)*h(n)

图1线性非移变离散系统为方便讨论,令图1所示离散系统为FIR滤波器,即h(n)为一有限长的因果序列,长度为M。(1)重叠相加法将输入序列x(n)进行分割,每段长度为N,且有N≥M,如图2所示。每一段都可以和有限时宽单位取样响应作卷积,再将过滤后的各段重叠相加。具体算法实现原理如图3所示,建立缓存序列,每次输入N点序列,通过计算x(n)和h(n) 的循环卷积实现线性卷积运算,将缓存的M-1点序列和卷积结果相加,并输出前N点作为计算结果,同时缓存后M-1点,如此循环,直至所有分段计算完毕,则输出序列y(n)为最终计算结果。

图2序列x(n)的连续分段

图3 重叠相加算法(2)重叠保留法与重叠相加法有所不同,重叠保留法是通过对输出序列y(n)进行分段后导出的一种线性卷积的计算方法。按图4所示的方式对序列y(n)进行分段,每段长度为N。

图4序列y(n)的连续分段每个输入段和前一段有? M ‐ 1 个重叠点。此时只需要将发生重叠的前? M ‐1 个点舍去,保留重叠的部分并输出,则可获得序列? y(n) 。算法如图5所示。

图5 重叠保留法2、流程图及源代码(1)源代码

function [ y ] = circular_conv( x1, x2, L ) % 利用循环卷积计算线性卷积

X1k = fft(x1,L); %x1 做L 点FFT X2k = fft(x2,L); %x1 做L 点FFT Yk = X1k.*X2k; %频域相乘 y = ifft(Yk); %FFT 反变换得循环卷积结果 end

function [ y ] = overlap_add( x, h, N ) %重叠相加法实现

M = length(h); %获得h(n)的长度 if N < M % 为N 选择合适的值保证运算正确 N = M+1; end L = M+N-1; %循环卷积与线性卷积结果相同时需要进行运算的最少点数Lx = length(x); %获得x(n)的长度 T = ceil(Lx/N); %确定分段数T t = zeros(1,M-1); %初始化序列t(n) x = [x,zeros(1, (T+1)*N-Lx)]; %不足的分段补零 y = zeros(1, (T+1)*N); %生成输出序列y(n), 长度足够长 for i = 0:1:T xi = i*N+1; x_seg = x(xi:xi+N-1); % 选择低点数计算时的分段x(n) y_seg = circular_conv(x_seg, h, L); %调用循环卷积计算线性卷积 y_seg(1:M-1) = y_seg(1:M-1)+t(1:M-1);% 完成重叠相加 t(1:M-1) = y_seg(N+1:L); % 重新对t(n)赋值为保留的后M-1 点 y(xi:xi+N-1) = y_seg(1:N); % 直接输出前N 个点 end y=y(1:Lx+M-1); %取出最终的输出序列 end

function [ y ] = overlap_save( x, h, N ) %重叠保留法实现 Lx = length(x); %获得x(n)的长度 M = length(h); %获得h(n)的长度 if N < M % 为N 选择合适的值保证运算正确 N = M+1; end L = N+M-1; %为降低点数,取M+N-1 点循环卷积即可 t = zeros(1,M-1); %初始化序列t(n) T = ceil(Lx/N); %确定分段数 x = [x,zeros(1, (T+1)*N-Lx)]; %为不足的分段补零 y = zeros(1, (T+1)*N); for i = 0:1:T xi = i*N+1; x_seg = [t,x(xi:xi+N-1)]; %确定每个低点数卷积的分段x(n) t = x_seg(N+1:N+M-1); % 为t(n)重新赋值为后M-1 个点的值 y_seg = circular_conv(x_seg,h,L); % 循环卷积计算线性卷积 y(xi:

ex020100 信号合成 ex020200 信号合成 ex020300 复数序列的信号合成 ex020400 奇偶合成 ex020500 卷积计算 ex020600 卷积的图解 ex020700 卷积计算 ex02070b 卷积计算 ex020800 互相关计算 ex020700 卷积计算 ex020900 解差分方程 ex021000 解差分方程 例3.1~例3.2 求离散付利叶变换 ex030300 例3.1中x(n)=(0.9)n 的频谱曲线绘制 ex030400 用矩阵-向量乘法求有限长序列的DTFT ex030500 x(n)=(exp(jπ/3))n 的频谱及其周期性 ex030600 x(n)=2n 的离散付利叶变换及其共轭对称性 ex030700 DFDT 线性性(3.5)的验证 ex030800 DFDT 时域移位性(3.6)的验证 ex030900 DFDT 频域移位性(3.7)的验证 ex031000 DFDT 共轭性(3.8)的验证 ex031100 DFDT 折叠性(3.9)的验证 ex031200 DFDT 对称性(3.10)的验证 ex031300 脉冲函数为h(n)=(0.9)nu(n) 的系统的频谱曲线 ex031400 系统稳态输出的计算 ex031500 以差分方程表示的系统的频谱函数和稳态输出的计算 ex031600 以差分方程表示的滤波器的频谱函数的计算 ex031700 求付利叶变换及绘制曲线 ex031800 不同采样频率对频谱曲线的影响 ex031900 用例3.18a中的x(n)重构x(t) ex032000 用例3.18b中的x(n)重构x(t) ex032100 用ZOH和FOH把例3.18中的x(n)重构为x(t) ex032200 用spline函数把例3.18中的x1(n)和x2(n)重构为xa(t) 例4.1~例4.3 求z变换(须用MATLAB中的symbolic工具箱) 例4.4~例4.6 用其他方法求z变换 例4.7 求z反变换 ex040800 检验residuez函数 ex040900 求z反变换 ex041000 求不带复数的z反变换 ex04100a 求不带复数的z反变换 ex041100 由差分方程求零-极点及频率响应 例4.12 由离散传递函数求脉冲过度函数 ex041300 由差分方程求系统函数及脉冲响应 ex050200 宽度L周期N的周期性方波的离散付利叶曲线 ex050500 不同的离散付利叶采样密度对应的时域曲线 ex050600 离散付利叶变换计算 ex050700 例5.6取不同周期所得离散付利叶曲线 ex050800 高密度和高分辨频谱的差别 ex050900 循环折叠特性的检验 ex051000 循环奇偶分解特性(5.34)的检验 ex051100 循环移位特性的检验 ex051200 循环移位特性的检验 ex051300 循环卷积的计算 ex051400 循环卷积的计算 ex051500 周期N对循环卷积的影响 ex051600 循环卷积和线性卷积的比较 ex051700 周期N对循环卷积的影响 ex051800 用重叠保留法计算循环卷积 ex051900 用重叠保留法计算循环卷积 ex052000 点FFT计算 ex052100 1<N<2048点FFT执行时间的比较 ex052200 1<L<150点快速卷积与FFT的执行时间比较 ex060100 级联形式转换 ex060200 并联形式转换 ex060300 混合形式转换 例6.4 线性相位系统的级联形式 例6.5 线性相位系统的无复数级联形式 ex060600 给定h(n),求其频率采样形式 ex060700 求频率采样形式并与线性相位形式相比较 例6.8 由差分方程求格型形式 例6.9 由全极点形式求格型形式 例6.10 由零-极点形式求梯形-格型形式 例7.1~例7.2 滤波器相对指标与绝对指标的转换 ex070300 振幅响应和幅度响应 ex070400 1-型线性相位FIR滤波器 ex070500 2-型线性相位FIR滤波器 ex070600 3-型线性相位FIR滤波器 ex070700 4-型线性相位FIR滤波器 ex070800 低通滤波器设计 - 哈明窗 ex070900 低通滤波器设计 - 凯泽窗 ex071000 带通滤波器设计 - 布莱克曼窗 ex071100 带阻滤波器设计 - 凯泽窗 ex071200 差分器设计 - 哈明窗
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值