上一篇:东方红一号乐音装置原理分析
2.1 仿真目的与采样
基于上一节的原理分析,利用Octave进行乐音信号合成的仿真,建立信号数学模型,产生数字采样的音频信号序列。通过与录音录像的波形频谱的比对,结合主观听感,确定信号的参数,并为设计晶体管电路复刻乐音装置提供设计参数和思路。
东方红一号下行乐音最高频率不超过3kHz,信号仿真选择44000Hz的音频采样率,量化使用Octave默认的双精度浮点数。
2.2 主振荡器
节奏
乐曲前8小节重复播发两遍耗时40秒,据此可以计算得到最短音符持续时间为40 / 64 = 0.625 s,在仿真中称为一拍。根据波形判断信号门控间隔为1/2拍,即0.3125 s,门控主时钟的工作频率是3.2 Hz。
基频
乐音装置疑似没有使用FM合成,而是使用六个独立的音频振荡器。通过录音信号的FFT频谱分析,得到乐曲中各个音符的频率,可知合成器使用了F调。使用平均律,六个音符的频率分别为:
中音5(sol)f_c3=1046.528Hz,
中音6(la)f_d3=1174.688Hz,
中音2(re)f_g2=784.010Hz,
中音1(do)f_f2=698.473Hz,
低音6(la)f_d2=587..344Hz,
高音1(do)f_f3=1396.947Hz。
颤音
颤音源是一个低频振荡。根据频谱图中谱线的波浪形状,仿真中使用正弦波。颤音又四个参数确定:幅度调制深度dA,频率调制偏移dF,颤音频率F,以及起始相位φ。
颤音振荡器的输出写为
x_vibrato = cos(2 πFt + φ)
调制后的乐音振荡器输出可以写为(以c3一路为例)
x_c3 = (dA * x_vibrato + 1) * sin[ (2 π f_c3 + (dF / F) * x_vibrato) * t ]
通过主观听觉判断颤音频率,在最长的2(re)音持续的四拍中,颤音大约振荡了8次。正好和前述数字信号主时钟的频率相同。这里用数字信号的主时钟3.2 Hz作为颤音频率。为了让乐曲听起来更加庄严,在音符切换的瞬间没有滑音的听感,应当选择合适的相位φ,让颤音的频率变化为正弦形式,在音符交界处调频幅度为0。
2.3 触发和门控
我认为晶体管逻辑门控是可能的设计之一。在本项目中,假定时序控制是有触发信号和门控信号两个数字信号实现的。再次重申,这只是一种可能,这不代表实际卫星上的乐音装置采取的技术方案。
晶体管开启和关闭会为电容提供两个不同的充电、放电电阻,动态过程是RC一阶电路,它的时域响应是指数函数。门控建模中,采用三个RC时间常数来模拟晶体管逻辑门控的时域响应
(1) 在每个音开始的1/2拍内,触发信号有效。触发信号使门控电容快速放电,晶体管门控迅速开启,输出幅度快速上升。建模为控触发开启的充电时间常数tau_trig ,触发信号有效持续时间为1/2拍,0.3125s
(2) 在整个音符持续时间内,触发信号清零,但门控信号有效,此时,以一个较慢的时间常数向门控电容充电,产生钟声包络。时间常数为tau_bell。
(3) 音符持续时间结束,门控信号随之关闭。此后,以一个较快的时间常数迅速给门控电容充电,时间常数为tau_off。由于晶体管导通放电速度一般开讲大于充电速度,这个关闭时间会比触发信号的时间长一些。频谱上也能看到类似的现象。
根据纪录片中的原始信号波形,可知信号的最大幅度基本是恒定的。当两个振荡器的门控同时打开时,信号叠加会导致信号幅度增加。所以门控信号之间没有重叠部分。
设计触发和门控波形如下图
2.4 包络综合
按照乐谱安排触发信号和门控信号,并按照设定的时间常数,以指数函数的形式生成包络。其中前面的系数应当使用触发和门控时刻电容电压和电源电压的差值,参考电容充电公式:
触发delay_trig = 1 – exp(-t / tau_trig)
衰减 delay_bell = exp(-t / tau_bell)
通过门控的各路信号直接用相加,得到输出信号。
2.5 原始信号比对与参数调整
比较原始信号的频谱、波形,通过主观感受修正调制深度、延迟等参数,让合成的乐音最接近于原始录音。最终选择一组参数如下:
df = .1; % [Hz] vibrato FM shift (deltaf)
da = 0.00001; % [1] vibrato AM relative depth (deltaA)
tau1 = 2 * t_note / 5; % trig [s] time constant (RC) 5*tau @ 99.9%
tau2 = 2 * t_note / 5; % gate off
tau4 = 16 * t_note / 5; % bell
合成波形与纪录片中录像的比较
合成频谱与录音的比较