Tag: 谱图

使用渐变颜色绘制矩阵“Spectrogram”

在使用STFT(短时傅立叶变换)之后,输出是表示3d图的矩阵,好像(A[X, Y] = M) A是输出矩阵,X是时间,Y是频率,并且第三维M是像素颜色强度所示的幅度,如下图所示: 谱图2 如何使用C#中的图片中的渐变颜色绘制输出矩阵A? 是否有一个包含C#频谱图控件的库? 更新: 在对给定算法进行一些修改后我可以绘制光谱图,我没有改变调色板,除了第一种颜色变为黑色但我不知道为什么它会褪色! 这个代表一种声音 再见 再见光谱图 而这是一个pure sine wave所以它几乎都是相同的频率 纯正弦波频谱图 输出被接受它表示输入信号的频率如预期的那样,但我认为有一种方法可以使光谱图像示例中的那样进行说明,请您查看我的代码并建议修改? 这是事件处理程序: private void SpectrogramButton_Click(object sender, EventArgs e) { Complex[][] SpectrogramData = Fourier_Transform.STFT(/*signal:*/ samples, /*windowSize:*/ 512, /*hopSize:*/ 512); SpectrogramBox.Image = Spectrogram.DrawSpectrogram(SpectrogramData, /*Interpolation Factor:*/ 1000, /*Height:*/ 256); } 这是我修改后的绘图function: public static Bitmap DrawSpectrogram(Complex[][] Data, int InterpolationFactor, int Height) { […]

将WAV文件转换为频谱图

嗨,我对这件事很新,所以请耐心等待。 我正在尝试将WAV文件转换为频谱图但不确定如何开始。 我读了一些关于读取PCM数据(我认为是我的WAV文件)并将其存储在WavReader类中的数组中的内容,然后对其应用FFT并将其转换为GUI。 我目前正在使用Naudio来实现这一点,但找不到任何显示如何将WAV文件转换为频谱图的内容。 谢谢 编辑:我发现有关使用Naudio将PCM转换为FFT并且我卡住了。 using (var reader = new AudioFileReader(“test1.wav”)) { // test1.wav is my file to process // test0.wav is my temp file IWaveProvider stream16 = new WaveFloatTo16Provider(reader); using (WaveFileWriter converted = new WaveFileWriter(“test0.wav”, stream16.WaveFormat)) { // buffer length needs to be a power of 2 for FFT to work nicely // […]