Triangle Wave

 Triangle Wave 

In this problem you are to generate a triangular wave form according to a specified pair of Amplitude and Frequency.

Input and Output

The input begins with a single positive integer on a line by itself indicating the number of the cases following, each of them as described below. This line is followed by a blank line, and there is also a blank line between two consecutive inputs.

Each input set will contain two integers, each on a separate line. The first integer is the Amplitude; the second integer is the Frequency.

For each test case, the output must follow the description below. The outputs of two consecutive cases will be separated by a blank line.

For the output of your program, you will be printing wave forms each separated by a blank line. The total number of wave forms equals the Frequency, and the horizontal ``height'' of each wave equals the Amplitude. The Amplitude will never be greater than nine.

The waveform itself should be filled with integers on each line which indicate the ``height'' of that line.

NOTE: There is a blank line after each separate waveform, excluding the last one.

Sample Input

1

3
2

Sample Output

1
22
333
22
1

1
22
333
22
1
#include <stdio.h>

int main()
{
    int t, m, n, x, z, i, j, k, h;
    scanf("%d", &t);
    for(i = 0; i < t; i++)
    {
        scanf("%d%d", &m, &n);
        for(j = 0; j < n; j++)
        {
            for(k = -m + 1; k < m; k++)
            {
                z = k > 0 ? k : -k;
                for(h = 1; h <= m - z; h++)
                {
                    printf("%d", m - z);
                }
                printf("\n");
            }
            if(j != n - 1 || i != t - 1)
                printf("\n");
        }
    }
    return 0;
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个Python的GUI程序,用于生成和绘制三角波,并对其进行FFT变换。你可以通过交互式的方式改变三角波的基本频率和幅度,并观察其对应的频域幅值谱的变化。 ```python import numpy as np import matplotlib.pyplot as plt import tkinter as tk from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg class FFTTriangleGUI: def __init__(self): self.fig, self.axs = plt.subplots(2, 1, figsize=(8, 6)) self.canvas = FigureCanvasTkAgg(self.fig, master=root) self.canvas.get_tk_widget().pack(side=tk.TOP, fill=tk.BOTH, expand=1) self.freq_slider = tk.Scale(root, from_=1, to=20, resolution=0.1, orient=tk.HORIZONTAL, label='Frequency (Hz)', command=self.update_triangle) self.freq_slider.pack(side=tk.TOP, fill=tk.BOTH, padx=5, pady=5) self.amp_slider = tk.Scale(root, from_=0, to=1, resolution=0.01, orient=tk.HORIZONTAL, label='Amplitude', command=self.update_triangle) self.amp_slider.pack(side=tk.TOP, fill=tk.BOTH, padx=5, pady=5) self.freq = 5 self.amp = 0.5 self.update_triangle(None) def update_triangle(self, event): t = np.linspace(0, 1, 400, endpoint=False) x = np.concatenate((t, np.flip(t))) x -= np.mean(x) x *= self.amp x *= np.sin(2 * np.pi * self.freq * t) self.axs[0].clear() self.axs[0].plot(t, x[:len(t)]) self.axs[0].set_xlabel('Time (s)') self.axs[0].set_ylabel('Amplitude') self.axs[0].set_ylim((-1, 1)) X = np.fft.fft(x) freqs = np.fft.fftfreq(len(x)) * 400 self.axs[1].clear() self.axs[1].plot(freqs, np.abs(X)) self.axs[1].set_xlim((0, 20)) self.axs[1].set_xlabel('Frequency (Hz)') self.axs[1].set_ylabel('Magnitude') self.canvas.draw() if __name__ == '__main__': root = tk.Tk() root.title('FFT Triangle Wave Demo') FFTTriangleGUI() root.mainloop() ``` 运行程序后,将会弹出一个窗口,其中包含两个图,一个是三角波的时域波形,另一个是其对应的频域幅值谱。你可以通过拖动滑动条来改变三角波的基本频率和幅度。注意,频率轴的范围限制在0-20Hz之间,因此如果你将频率调整超过该范围,可能会看不到某些谐波分量的幅值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值