mumuqingyou
2011-09-23, 10:06
如何实现按照数字来控制生成不同频率的连续的波形(就是在频率发生变化的时候不会发生间断)!
如:按照 a = [1 1 2 2 3 3];1---18K,2---19K,3---20K,每个数字对应的频率取100个点生成连续波形。附件中的波形是我生成的,但是不连贯,我的本意是生成连贯的波形。
我的代码是:
fs = 192000;
L = 100;
N = 16;
bit_stream_code = [2 2 0 0 1 1 0];
t = (0:length(bit_stream_code)*L-1)*T;
FSK_signal = zeros(1,length(bit_stream_code)*L);
% 生成FSK调制信号 %
for i = 1:length(bit_stream_code)
% 如果bit_stream(ii)为0就乘以频率为f0的正弦信号,%如果bit_stream(ii)为1就乘以频率为f1的正弦信号
FSK_signal((i-1)*L+1:i*L) = (bit_stream_code(i)==0)*sin(2*pi*f0.*t((i-1)*L+1:i*L+...
(bit_stream_code(i)==1)*sin(2*pi*f1.*t((i-1)*L+1:i*L)) + (bit_stream_code(i)==2) ...
*sin(2*pi*f_head.*t((i-1)*L+1:i*L));
end
wavwrite(FSK_signal,fs,N,'wave-0922_1510_0K');
如:按照 a = [1 1 2 2 3 3];1---18K,2---19K,3---20K,每个数字对应的频率取100个点生成连续波形。附件中的波形是我生成的,但是不连贯,我的本意是生成连贯的波形。
我的代码是:
fs = 192000;
L = 100;
N = 16;
bit_stream_code = [2 2 0 0 1 1 0];
t = (0:length(bit_stream_code)*L-1)*T;
FSK_signal = zeros(1,length(bit_stream_code)*L);
% 生成FSK调制信号 %
for i = 1:length(bit_stream_code)
% 如果bit_stream(ii)为0就乘以频率为f0的正弦信号,%如果bit_stream(ii)为1就乘以频率为f1的正弦信号
FSK_signal((i-1)*L+1:i*L) = (bit_stream_code(i)==0)*sin(2*pi*f0.*t((i-1)*L+1:i*L+...
(bit_stream_code(i)==1)*sin(2*pi*f1.*t((i-1)*L+1:i*L)) + (bit_stream_code(i)==2) ...
*sin(2*pi*f_head.*t((i-1)*L+1:i*L));
end
wavwrite(FSK_signal,fs,N,'wave-0922_1510_0K');