SMH*_*SMH 3 matlab signals signal-processing
我试图绘制一个正弦波,其中振幅随时间增加,频率随着时间的推移而增加.我绘制一个正常的正弦波,如下所示,但我无法改变幅度和频率.有任何想法吗?
t = [ 0 : 1 : 40 ]; % Time Samples
f = 500; % Input Signal Frequency
fs = 8000; % Sampling Frequency
x = sin(2*pi*f/fs*t); % Generate Sine Wave
figure(1);
stem(t,x,'r'); % View the samples
figure(2);
stem(t*1/fs*1000,x,'r'); % View the samples
hold on;
plot(t*1/fs*1000,x); %
Run Code Online (Sandbox Code Playgroud)
ray*_*ica 10
我相信你所说的是幅度调制(AM)和频率调制(FM).基本上,AM指的是改变正弦信号的幅度,并且改变它使用与时间相关的函数.FM类似,除了频率变化而不是幅度.
给定时变信号A(t)
,AM通常表示为:
小调:以上实际上是双边带抑制载波(DSB-SC)调制,但如果你想在你的问题中实现你想要的,我们实际上需要这样做.而且,通常使用信号cos
代替sin
在发送时确保零相移.但是,因为您的原始代码使用sin
,这也是我将使用的.
我在这里放置这个免责声明以防任何通信理论家想要尝试纠正我:)
同样,FM通常表示为:
A(t)
被称为消息或调制信号,因为它改变了正弦波的幅度或频率.正弦波本身就是所谓的载波信号.使用AM和FM的原因在于通信理论.在模拟通信系统中,为了将信号从一个点发送到另一个点,需要将消息频移或调制到频谱中的更高范围,以便适应信号传播的信道或介质的频率响应.在.
因此,您所要做的就是指定A(t)
您想要的任何信号,只要您的值t
与您的正弦曲线一样使用.例如,假设您希望幅度或频率线性增加.在这种情况下,A(t) = t
.请记住,您需要指定正弦波f_c
的频率,数据的采样周期或采样频率以及信号定义的时间范围.我们将数据的采样频率称为f
.另外请记住,如果您希望曲线可以正确显示,则需要足够高.如果你把它做得太低,那么你将会跳过信号的基本峰值和低谷,图表看起来会很差.
因此,对于AM,您的代码可能如下所示:
f = 24; %// Hz
f_c = 8; %// Hz
T = 1 / f; %// Sampling period from f
t = 0 : T : 5; %// Determine time values from 0 to 5 in steps of the sampling period
A = t; %// Define message
%// Define carrier signal
carrier = sin(2*pi*f_c*t);
%// Define AM signal
out = A.*carrier;
%// Plot carrier signal and modulated signal
figure;
plot(t, carrier, 'r', t, out, 'b');
grid;
Run Code Online (Sandbox Code Playgroud)
上面的代码将载波和调制信号一起绘制.
这就是我得到的:
如您所见,随着时间的增加,振幅会变高.你也可以看到,载波信号被限定在消息信号A(t) = t
.我已将原始载波信号放在图中作为辅助.您当然可以看到由于消息信号,载波的幅度变得更大.
同样,如果你想做FM,大多数代码是相同的.唯一不同的是消息信号将在载波信号本身内部.因此:
f = 100; %// Hz
f_c = 1; %// Hz
T = 1 / f; %// Sampling period from f
t = 0 : T : 5; %// Determine time values from 0 to 5 in steps of the sampling period
A = t; %// Define message
%// Define FM signal
out = sin(2*pi*(f_c + A).*t);
%// Plot modulated signal
figure;
plot(t, out, 'b');
grid;
Run Code Online (Sandbox Code Playgroud)
请记住,我改变了f_c
,f
以便您正确地看到变化.我也没有绘制载波信号,所以你不会分心,你可以更清楚地看到结果.
这就是我得到的:
您可以看到频率开始相当低,然后由于消息信号而开始逐渐增加A(t) = t
.随着时间的增加,频率也随之增加.
您可以使用不同的频率来获得不同的结果,但这应该足以让您入门.
祝好运!