你的问题不明确,比如没说采样率多少?带产生信号的波形的基频(fundamental)是多少、或是基频作为输入参数的话其范围多大等。
另外,你的“时域和频域的分析”是哪些呢?
function waveform=siggen(f0,fs,N,wavType)
if (wavType=="square")
x = ...
elseif (wavType=="sine")
x = ...
elseif (wavType=="trangular")
x = ...
endif
y = fft(x);