经试验调试发现,频域调幅信号没有波形的原因是xlim范围选择不准确,且由于频域调幅信号部分峰值(1.5左右)特别大,导致有用信号频段不是很明显(0.01),就像在高楼面前放了一颗树,请改用axis()函数同时限制横轴纵轴范围:
axis([2000, 4000, 0, 0.01]);
而时域AM图像怀疑可能是app.UIAxes选择的名称不对,在.m测试脚本中注释掉带有app.X的地方是可以有效果的。
clc,clear,close all;
[myRecording,fs] = audioread('chirp.wav');
%load data
L0= length(myRecording);
t = (0:L0-1)/fs;
% assignin('base','t',t);
x=myRecording;
% assignin('base','x',x);
x_am=(2+x).*cos(2*pi*8000*t);
subplot(221)
plot(t,x);
% plot(app.UIAxes4,t,x);
subplot(222)
plot(t,x_am);
title('调幅信号时域图像');
xlabel('t(s)'), ylabel('幅度')
% xlabel('t(s)'), ylabel(app.UIAxes,'幅度')
% plot(app.UIAxes,t,x_am);
% title(app.UIAxes,'调幅信号时域图像');
% xlabel(app.UIAxes,'t(s)'), ylabel(app.UIAxes,'幅度')
L1=length(x);
y1=abs(fft(x)/L1);
f1=fs*(0:(L1/2))/L1;
% f1=app.fs*(0:(L1/2))/L1;
subplot(223)
plot(f1,y1(1:L1/2+1)); %绘制频域图像
% plot(app.UIAxes3, f1,y1(1:L1/2+1)); %绘制频域图像
% xlim(app.UIAxes3,[4000,12000]);
L=length(x_am);
% NFFT = 2^nextpow2(L); %确定 FFT 变换的长度
% y = fft(x_am, NFFT)/L;
% f = app.fs/2*linspace(0,1,NFFT/2+1); %频率向量
% plot(app.UIAxes2, f,2*abs(y(1:NFFT/2+1))); %绘制频域图像
y=abs(fft(x_am)/L);
L0=length(y);
f=fs*(0:(L0/2))/L;
% f=app.fs*(0:(L0/2))/L;
subplot(224)
plot(f,y(1:L/2+1)); %绘制频域图像
title('调幅信号频域图像');
axis([2000, 4000, 0, 0.01]);
xlabel('f(Hz)'), ylabel('幅度');
% save('data.mat', 'x_am')
% plot(app.UIAxes2, f,y(1:L/2+1)); %绘制频域图像
% title(app.UIAxes2,'调幅信号频域图像');
% xlim(app.UIAxes2,[4000,12000]); %范围有误,不能仅设置xlim
% ylim(app.UIAxes2,[2000, 4000, 0, 0.01]);
% xlabel(app.UIAxes2,'f(Hz)'), ylabel(app.UIAxes2,'幅度');

我选用的是一段chirp啁啾信号,所以出图效果和你的有些差别。
将输入信号更换为正弦波AM调制更为明显:
clc,clear,close all;
% [myRecording,fs] = audioread('chirp.wav');
% load data
fs = 200;
n = -2:1/fs:2;
myRecording = sin(2*pi*500/fs*n);
L0= length(myRecording);
t = (0:L0-1)/fs;
% assignin('base','t',t);
x=myRecording;
% assignin('base','x',x);
x_am=(2+x).*cos(2*pi*4000/fs*t);
subplot(221)
plot(n,x);
% plot(app.UIAxes4,t,x);
subplot(222)
plot(t,x_am);
title('调幅信号时域图像');
xlabel('t(s)'), ylabel('幅度')
% xlabel('t(s)'), ylabel(app.UIAxes,'幅度')
% plot(app.UIAxes,t,x_am);
% title(app.UIAxes,'调幅信号时域图像');
% xlabel(app.UIAxes,'t(s)'), ylabel(app.UIAxes,'幅度')
L1=length(x);
y1=abs(fft(x)/L1);
f1=fs*(0:(L1/2))/L1;
% f1=app.fs*(0:(L1/2))/L1;
subplot(223)
plot(f1,y1(1:L1/2+1)); %绘制频域图像
% plot(app.UIAxes3, f1,y1(1:L1/2+1)); %绘制频域图像
% xlim(app.UIAxes3,[4000,12000]);
L=length(x_am);
% NFFT = 2^nextpow2(L); %确定 FFT 变换的长度
% y = fft(x_am, NFFT)/L;
% f = app.fs/2*linspace(0,1,NFFT/2+1); %频率向量
% plot(app.UIAxes2, f,2*abs(y(1:NFFT/2+1))); %绘制频域图像
y=abs(fft(x_am)/L);
L0=length(y);
f=fs*(0:(L0/2))/L;
% f=app.fs*(0:(L0/2))/L;
subplot(224)
plot(y(1:L/2+1)); %绘制频域图像
title('调幅信号频域图像');
% axis([2000, 4000, 0, 0.01]);
xlabel('f(Hz)'), ylabel('幅度');
% save('data.mat', 'x_am')
% plot(app.UIAxes2, f,y(1:L/2+1)); %绘制频域图像
% title(app.UIAxes2,'调幅信号频域图像');
% xlim(app.UIAxes2,[4000,12000]);
% ylim(app.UIAxes2,[2000, 4000, 0, 0.01]);
% xlabel(app.UIAxes2,'f(Hz)'), ylabel(app.UIAxes2,'幅度');
