一直显示不支持将函数输出赋值给此表达式,对具体的意思不理解,不知道该怎么进行改正
根据代码截图和错误提示截图,可以看出报错信息是由第6行代码“Mag=abs(Y);”引起的。经过检查,发现在代码中没有定义Y变量,因此会提示错误。根据频谱相干函数脚本,可以看出Y变量应该表示经过FFT变换后的结果。因此,需要进行FFT变换后才能得到Y值。可以在代码中添加如下一行:
Y = fft(data);
并将Mag=abs(Y)改为Mag=abs(Y'),以进行转置后的幅值计算,即可避免出现错误信息。
修改后的代码如下:
clc;clear all;close all;
data=load('WaveData.txt');
figure
subplot(2,1,1);
plot(data(:,1),data(:,2));grid on;
xlabel(' Time (us)');
ylabel(' Voltage (V)');
title('Waveform');
N=length(data(:,1));T=mean(diff(data(:,1)));
Fs=1/T;
X=data(:,2);
figure
subplot(2,1,1);
plot(X);grid on;
xlabel(' Time (s)');
ylabel(' Amplitude');
title('Original Signal');
Y=fft(X);
Mag=abs(Y');
f=(0:N-1)*(Fs/N);
subplot(2,1,2);semilogx(f(1:N/2),20*log10(Mag(1:N/2)));grid on;
xlabel(' Frequency(Hz)');
ylabel('|Y(f)|');
title('Single-Sided Amplitude Spectrum of Y(t)');
修改后再次运行程序,即可得到正确的运行结果。