- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 利用DFT计算序列线性卷积的步骤 若x[k]的长度为N,h[k]的长度为M,则L=N+M-1点循环卷积等于x[k] 与h[k]的线性卷积。 小结:线性卷积求解方法 时域直接求解 补N-N1个零 x[k] N点DFT 补N-N2个零 h[k] N点DFT N点IDFT y[k] = x[k]*h[k] z变换法 DFT法 N的长度等于多少? % Calculate Linear Convolution by DFT x = [1 2 0 1]; h = [2 2 1 1]; % determine the length for zero padding L = length(x)+length(h)-1; % Compute the DFTs by zero-padding XE = fft(x,L); HE = fft(h,L); % Determine the IDFT of the product y1 = ifft(XE.*HE); 例:利用MATLAB由DFT计算x[k]* h[k]。 x[k]={1, 2, 0, 1}, h[k]={2, 2, 1, 1} 直接计算与由DFT间接计算结果比较 若x1[k]为 M 点序列, x2[k]为L 点序列 , LM x1[k] L x2[k]中哪些点不是线性卷积的点? 问题讨论* 0? k ? M-2不是线性卷积的结果,即前(M-1)个点与线性卷积不一样。 线性卷积的矩阵表示 循环卷积的矩阵表示 x1[k] L x2[k] k=0 ~M-2, 前M-1个点不是线性卷积的点 k= M-1 ~ L-1 , L-M+1个点与线性卷积的点对应 线性卷积 L ~ L+M-2 后M -1点没有计算 则L点循环卷积 结论 若x1[k]为 M 点序列, x2[k]为L 点序列 , LM 图 示 长序列和短序列的线性卷积 直接利用DFT计算的缺点: (1) 信号要全部输入后才能进行计算,延迟太多 (2) 内存要求大 (3) 算法效率不高 解决问题方法:采用分段卷积 分段卷积可采用重叠相加法和重叠保留法 长序列和短序列的线性卷积 1. 重叠相加法(overlap add) 将长序列x[k] 分为若干段长度为L的序列 其中 长序列和短序列的线性卷积 1. 重叠相加法(overlap add) y0[k]的非零范围 y1[k-L]的非零范围 序列 y0[k], y1[k]的重叠部分 重叠的点数 L+M-2-L+1=M-1 依次将相邻两段的M-1个重叠点相加,即得到最终的线性卷积结果。 重叠相加法分段卷积举例 重叠相加法分段卷积举例 fftfilt(h,x,n) h: FIR filter x: input sequence n 为DFT点数,一般取2的整数次幂 利用MATLAB实现分段卷积 利用MATLAB实现分段卷积 % Generate the noise sequence N = 64; d = rand(N,1)-0.5; % Generate the uncorrupted sequence and add noise for m = 1:1:N, s(m) = 2*(m-1)*((0.9)^(m-1)); x(m) = s(m) + d(m); end % the length of moving average filter M = 4; % Generate the moving average filter coefficients h = ones(1,M)/M; % Perform the overlap-add filtering operation y = fftfilt(h,x,8); 4点滑动平均系统去噪结果 长序列和短序列的线性卷积 2. 重叠保留法(overlap save) 方法: (1) 将x[k]长序列分段,每段长度为L; (2) 各段序列xn[k]与 M点短序列h[k]循环卷积; (3) 从各段循环卷积中提取线性卷积结果。 前M-1个点不是线性卷积的点 因 yn[k]=xn [k] L h[k] 故分段时,每段与其前一段有M-1个点重叠。 长序列和短序列的线性卷积 2. 重叠保留法(overlap save) - - x [ k ( M 1)] M - 1 - - L ( M 1) L - 1 x 0 [ k ] x 1 [ k ] 2 L
文档评论(0)