为什么FFT变换后的幅值感觉不对? 请看一下问题出在哪里(matlab环境)
原始信号的幅值最大值都在40+50+为什么经过fft之后的幅值却只有9.9我已把fft的结果通过*2/nfft得到真正的幅值.这是我的代码感觉应该没错,但这结果很难想明白...
原始信号的幅值最大值都在40+ 50+ 为什么经过fft之后的幅值却只有9.9
我已把fft的结果通过*2/nfft 得到真正的幅值. 这是我的代码 感觉应该没错,但这结果很难想明白, 感觉fft后的结果 的幅值应该也在40+50+的样子,可得到这样的结果这是为什么?
time = [1:1:2049255];current = four(1,:); % datadata= (current/220)*1000;dt = (time(2)-time(1))*60; % the interval between samplefs = 1/dt; % after FFT, the max limitax = (abs(fft(data,length(time)))*2)/length(time); f = (1:length(time))*fs/length(time); %% % figuresubplot(211);plot(time,data);xlabel('Time(min)');ylabel('Power(mA)');title('Power signal profile');subplot(212);% plot(f,ax,'LineWidth',1);xlim([0 0.0083])semilogx(f,ax);xlabel('Frequency(Hz)');ylabel('Power(mA)');title('Power VS Frequency'); 展开
我已把fft的结果通过*2/nfft 得到真正的幅值. 这是我的代码 感觉应该没错,但这结果很难想明白, 感觉fft后的结果 的幅值应该也在40+50+的样子,可得到这样的结果这是为什么?
time = [1:1:2049255];current = four(1,:); % datadata= (current/220)*1000;dt = (time(2)-time(1))*60; % the interval between samplefs = 1/dt; % after FFT, the max limitax = (abs(fft(data,length(time)))*2)/length(time); f = (1:length(time))*fs/length(time); %% % figuresubplot(211);plot(time,data);xlabel('Time(min)');ylabel('Power(mA)');title('Power signal profile');subplot(212);% plot(f,ax,'LineWidth',1);xlim([0 0.0083])semilogx(f,ax);xlabel('Frequency(Hz)');ylabel('Power(mA)');title('Power VS Frequency'); 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询