《matlab论坛求助:信号加窗后的处理,看不懂程序后面的原理.docxVIP

《matlab论坛求助:信号加窗后的处理,看不懂程序后面的原理.docx

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《matlab论坛求助:信号加窗后的处理,看不懂程序后面的原理

Matlab中文论坛求助帖:求助:信号加窗后的处理,看不懂程序后面的原理。len = 48000;winType = hody; % 这是什么窗呢?winMinPhase = -pi; % 最小相位winMaxPhase = pi - 2 * pi / len; % 最大相位x = linspace(winMinPhase, winMaxPhase, len); % 均分switch winType case hody win = 0.06372625603133489 + ... cos(x) * 0.23940452419651895 + ... cos(x) .^ 2 * 0.35000203221155923 + ... cos(x) .^ 3 * 0.24817008904762164 + ... cos(x) .^ 4 * 0.08582735035413477 + ... cos(x) .^ 5 * 0.01242535720360149 + ... cos(x) .^ 6 * 0.0004443909552289012; hw = 7; ......enddcCorrection = 1 / sum(win);dcFft = fft(win);dcFft = dcFft(1 : min(hw, len)) * dcCorrection;win_gain = sqrt(1 / (len * sum(win .^ 2)));sRate=len;t = 1;n = 0:1/sRate:t - 1/sRate;m = floor(length(n)/2);input = [zeros(m,1);ones(length(n)-m,1)];xfrmLen = floor(length(input) / 2) + 1; % 频谱半长度+1,对应频率为pi/2inputFft = fft(input .* win); % inputFft,加窗后的频谱dc = inputFft(1) .*dcCorrection;inputFft(1 : hw) = inputFft(1 : hw) - (dcFft * inputFft(1));inputFft(1) = inputFft(1) / sqrt(2); % 计算 inputFft第一项的有效值if rem(length(inputFft), 2) == 0 % 若length(inputFft)为偶 inputFft(xfrmLen) = inputFft(xfrmLen) / sqrt(2); % 计算inputFft中间一个的有效值endxfrm = inputFft(1 : xfrmLen)*sqrt(2); % 默认信号为模拟信号,此处求有效值% 因为:2* inputFft(1 : xfrmLen)*sqrt(2) /2 = inputFft(1 : xfrmLen)*sqrt(2)xfrm = win_gain * xfrm; % 这是干什么呢?xfrm = xfrm .* conj(xfrm); %这又是得到什么?功率谱密度?将信号加窗后做频谱变换,后续涉及到的一些处理过程都和窗函数有关,看不懂一些处理过程。想请教下专家,谢谢了!~~~有疑问的地方基本都在程序注释里面写了。首先,第5行,没见过“hody”窗,不知道是啥窗(当然,窗的形状这里是知道的),网上没查到hody窗,我想是否是哪个专业应用?第二,39、40行,是去掉频谱中直流分量的,并且和窗函数有关,我想知道为什么这样处理。平时去直流分量直接将时域信号减去均值后再做频谱变换吧?但这里,不在时域处理,在频域,对频谱数据的前几项做这样的处理,是什么原理?可否公式说明? (那个hw可以认为是和此hody窗相关的一个因子。)第三,49行:xfrm = win_gain * xfrm;这里win_gain 是个什么因子,肯定和窗函数有关,这里是干嘛呢?如果说前面是将频谱数据去掉直流分量影响,并将模拟信号的幅度谱变为其有效值谱,那么这里将有效值谱乘以win_gain ,即是除以 sqrt(len * sum(win .^ 2)),是何意?最后,最后一句,紧接着上面一句,如果说上句计算的变量有可能是无意义的,只是一个中间量,那么这句是程序最后一句,得到的量应该是有意义的了。为了保证变量都是有意义的,我们从原去掉了直流成分影响的频谱数据inputFft ,推导到此处xfrm,具体是:xfrm = (win_gain * sqrt(2)) * inputFft(1 :xfrmLen).*conj((wi_gain *

文档评论(0)

1789811832 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档