% 定义采样频率和采样时长 fs = 1000; % 采样频率 T = 1; % 采样时长 t = 0:1/fs:T-1/fs; % 时间序列 % 定义载波频率和调制信号 fc = 100; % 载波频率 fm = 10; % 调制信号频率 Ac = 1; % 载波幅度 Am = 0.5; % 调制信号幅度 m = Am*cos(2*pi*fm*t); % 调制信号 % AM调制 s = (Ac+m).*cos(2*pi*fc*t); % 数字化正交解调 f0 = fc-fm; % 解调器本振频率 I = s.*cos(2*pi*f0*t); % I路信号 Q = s.*sin(2*pi*f0*t); % Q路信号 fir = fir1(50, 2*fm/fs); % FIR低通滤波器 I_filtered = filter(fir, 1, I); % I路信号低通滤波 Q_filtered = filter(fir, 1, Q); % Q路信号低通滤波 envelope = sqrt(I_filtered.^2+Q_filtered.^2); % 相干解调 % 绘图 subplot(3,1,1); plot(t, m); title('调制信号'); xlabel('时间'); ylabel('幅度'); subplot(3,1,2); plot(t, s); title('AM调制信号'); xlabel('时间'); ylabel('幅度'); subplot(3,1,3); plot(t, envelope); title('数字化正交解调结果'); xlabel('时间'); ylabel('幅度');输出载波信号,以及相应的结果分析
时间: 2023-08-04 10:05:26 浏览: 67
这段代码是一个简单的AM调制和数字化正交解调的实现。其中,定义了采样频率、采样时长、载波频率、调制信号频率、载波幅度、调制信号幅度等参数。接着,生成了调制信号和AM调制信号,然后用数字化正交解调的方法进行解调。解调过程中,用了一个FIR低通滤波器进行滤波,然后计算了I路和Q路信号,并最终得到了相干解调结果。
在绘图部分,分别绘制了调制信号、AM调制信号和数字化正交解调结果的图像。可以看到,调制信号是一个频率为10Hz的正弦波,AM调制信号则是在载波信号上加上了调制信号。数字化正交解调的结果则是经过滤波和计算得到的包络线,可以看到解调后的信号与原始调制信号形状相同,但幅度变化了。
相关问题
fs = 8000; % 采样频率 t = 0:1/fs:0.01-1/fs; % 时间向量 k=linspace(0,fs,length(t));
这段代码的作用是创建一个长度为800的时间向量t,其中每个采样点之间的时间间隔为1/fs秒,即每个采样点的时间戳分别为0, 1/fs, 2/fs, …, (800-1)/fs。
接着,使用linspace函数创建一个长度为800的等间距采样点的索引向量k,其中k的第一个元素为0,最后一个元素为fs,中间的799个元素均匀分布在0和fs之间。这个索引向量可以用于在处理信号时对采样点进行访问、操作等。
需要注意的是,由于采样时间长度为0.01秒(即10毫秒),因此t的最后一个元素应该为0.01-1/fs,而不是0.01。这样才能保证时间向量t的长度为800,与采样点的个数一致。
t = 0:1/fs:5-1/fs什么意思
`t = 0:1/fs:5-1/fs` 是一个定义时间序列的语句,其中:
- `t` 表示时间序列的变量名;
- `0` 表示时间序列的起始时间;
- `1/fs` 表示时间序列的时间步长,其中 `fs` 是采样率,表示每秒采样的次数;
- `5-1/fs` 表示时间序列的结束时间。
因此,这个语句的作用是定义了一个从时间0开始,以时间步长1/fs递增,到时间5-1/fs结束的时间序列。这个时间序列可以用来描述信号在时间上的变化,也可以用来进行信号的采样和仿真。