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

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

ID:15476300

大小:27.09 KB

页数:10页

时间:2018-08-03

matlab论坛求助:信号加窗后的处理看不懂程序后面的原理_第1页
matlab论坛求助:信号加窗后的处理看不懂程序后面的原理_第2页
matlab论坛求助:信号加窗后的处理看不懂程序后面的原理_第3页
matlab论坛求助:信号加窗后的处理看不懂程序后面的原理_第4页
matlab论坛求助:信号加窗后的处理看不懂程序后面的原理_第5页
资源描述:

《matlab论坛求助:信号加窗后的处理看不懂程序后面的原理》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Matlab中文论坛求助帖:求助:信号加窗后的处理,看不懂程序后面的原理。len=48000;winType='hody';%这是什么窗呢?winMinPhase=-pi;%最小相位winMaxPhase=pi-2*pi/len;%最大相位x=linspace(winMinPhase,winMaxPhase,len)';%均分switchwinTypecase'hody'win=0.06372625603133489+...cos(x)*0.23940452419651895+...cos(x).^

2、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

3、_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;inp

4、utFft(1:hw)=inputFft(1:hw)-(dcFft*inputFft(1));inputFft(1)=inputFft(1)/sqrt(2);%计算inputFft第一项的有效值ifrem(length(inputFft),2)==0%若length(inputFft)为偶inputFft(xfrmLen)=inputFft(xfrmLen)/sqrt(2);%计算inputFft中间一个的有效值endxfrm=inputFft(1:xfrmLen)*sqrt(2);%默认信号为模拟

5、信号,此处求有效值%因为:2*inputFft(1:xfrmLen)*sqrt(2)/2=inputFft(1:xfrmLen)*sqrt(2)xfrm=win_gain*xfrm;%这是干什么呢?xfrm=xfrm.*conj(xfrm);%这又是得到什么?功率谱密度?将信号加窗后做频谱变换,后续涉及到的一些处理过程都和窗函数有关,看不懂一些处理过程。想请教下专家,谢谢了!~~~有疑问的地方基本都在程序注释里面写了。首先,第5行,没见过“hody”窗,不知道是啥窗(当然,窗的形状这里是知道的),网

6、上没查到hody窗,我想是否是哪个专业应用?第二,39、40行,是去掉频谱中直流分量的,并且和窗函数有关,我想知道为什么这样处理。平时去直流分量直接将时域信号减去均值后再做频谱变换吧?但这里,不在时域处理,在频域,对频谱数据的前几项做这样的处理,是什么原理?可否公式说明?(那个hw可以认为是和此hody窗相关的一个因子。)第三,49行:xfrm=win_gain*xfrm;这里win_gain是个什么因子,肯定和窗函数有关,这里是干嘛呢?如果说前面是将频谱数据去掉直流分量影响,并将模拟信号的幅度谱变

7、为其有效值谱,那么这里将有效值谱乘以win_gain,即是除以sqrt(len*sum(win.^2)),是何意?最后,最后一句,紧接着上面一句,如果说上句计算的变量有可能是无意义的,只是一个中间量,那么这句是程序最后一句,得到的量应该是有意义的了。为了保证变量都是有意义的,我们从原去掉了直流成分影响的频谱数据inputFft,推导到此处xfrm,具体是:xfrm=(win_gain*sqrt(2))*inputFft(1:xfrmLen).*conj((wi_gain*sqrt(2))*input

8、Fft(1:xfrmLen))=sqrt(1/(len*sum(win.^2)))*sqrt(2))*inputFft(1:xfrmLen)*conj(sqrt(1/(len*sum(win.^2)))*sqrt(2))*inputFft(1:xfrmLen))=2*inputFft(1:xfrmLen)*conj(inputFft(1:xfrmLen))/len/sum(win.^2)从最后结果可以看出,2*inputFft(1:xfrmLen)*conj(inpu

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。