这是我的问题。我正在连续时间和离散时域中实现高通和低通滤波器,而不使用MATLAB内置函数或信号处理工具箱。我需要过滤上传的wav文件。我有以下代码实现低通连续时间过滤器。主要问题是,当我去播放文件时,我收到以下错误:
警告:在写入文件期间剪切数据:flute_new 在wavwrite> PCM_Quantize at 286
在wavwrite> write_wavedat at 302
在139的wavwrite
在23的test2中
我一直在读这个问题的常见解决方案是:signal = signal / max(abs(signal)),但仍然无法解决剪切问题。我不太明白是什么产生了这个错误,所以任何帮助都将不胜感激。谢谢你的阅读。代码如下:
[y,Fs,nbits]=wavread('flute.wav');
m = length(y); %96375
Fc = 500; %% frequency cut
nbits
n = -(m-1)/2 : (m-1)/2; %% kernel length / samples
%Fs = Fs; %22050 %% sample frequency / (nyquist - %2*m)
Tc = 2*pi*(Fc/Fs); %% theta c
Hm = sin(Tc*n) ./ (pi*n);
if (rem(m, 2) == 1)
index = (m+1)/2;
Hm(index) = Tc/pi;
end
[H w] = freqz(Hm, 1, 1024); % 1024 - Amount of Fourier Transform points
%do playback
sound(w,Fs);
%save and playback the file
wavwrite(w,'flute_new')
更新: 根据我的理解,因为我的wav文件是16位,我只能有-1< = w< 1。我按照评论中的建议更新了我的代码,但是当我检查w值时,我最后仍然有一个w = 1。建议的代码确实消除了剪辑警告,但通过扬声器播放音频文件仍然有剪辑。也许我理解错误的概念。对不起,如果是这样的话。
播放代码(已更新):
%Write and play file
w = w./max(abs(w(:)))*(1-(2^-(nbits-1)));
w
%do playback
sound(w,Fs);
wavwrite(w,'flute_new');
终端输出:
>> test2
nbits =
16
w =
0
0.0010
0.0020
0.0029
0.0039
0.0049
0.0059
0.0068
0.0078
0.0088
0.0098
0.0108
0.0117
0.0127
0.0137
0.0147
0.0156
0.0166
0.0176
0.0186
0.0195
0.0205
0.0215
0.0225
0.0235
0.0244
0.0254
0.0264
0.0274
0.0283
0.0293
0.0303
0.0313
0.0323
0.0332
0.0342
0.0352
0.0362
0.0371
0.0381
0.0391
0.0401
0.0411
0.0420
0.0430
0.0440
0.0450
0.0459
0.0469
0.0479
0.0489
0.0499
0.0508
0.0518
0.0528
0.0538
0.0547
0.0557
0.0567
0.0577
0.0586
0.0596
0.0606
0.0616
0.0626
0.0635
0.0645
0.0655
0.0665
0.0674
0.0684
0.0694
0.0704
0.0714
0.0723
0.0733
0.0743
0.0753
0.0762
0.0772
0.0782
0.0792
0.0802
0.0811
0.0821
0.0831
0.0841
0.0850
0.0860
0.0870
0.0880
0.0890
0.0899
0.0909
0.0919
0.0929
0.0938
0.0948
0.0958
0.0968
0.0977
0.0987
0.0997
0.1007
0.1017
0.1026
0.1036
0.1046
0.1056
0.1065
0.1075
0.1085
0.1095
0.1105
0.1114
0.1124
0.1134
0.1144
0.1153
0.1163
0.1173
0.1183
0.1193
0.1202
0.1212
0.1222
0.1232
0.1241
0.1251
0.1261
0.1271
0.1281
0.1290
0.1300
0.1310
0.1320
0.1329
0.1339
0.1349
0.1359
0.1368
0.1378
0.1388
0.1398
0.1408
0.1417
0.1427
0.1437
0.1447
0.1456
0.1466
0.1476
0.1486
0.1496
0.1505
0.1515
0.1525
0.1535
0.1544
0.1554
0.1564
0.1574
0.1584
0.1593
0.1603
0.1613
0.1623
0.1632
0.1642
0.1652
0.1662
0.1672
0.1681
0.1691
0.1701
0.1711
0.1720
0.1730
0.1740
0.1750
0.1759
0.1769
0.1779
0.1789
0.1799
0.1808
0.1818
0.1828
0.1838
0.1847
0.1857
0.1867
0.1877
0.1887
0.1896
0.1906
0.1916
0.1926
0.1935
0.1945
0.1955
0.1965
0.1975
0.1984
0.1994
0.2004
0.2014
0.2023
0.2033
0.2043
0.2053
0.2062
0.2072
0.2082
0.2092
0.2102
0.2111
0.2121
0.2131
0.2141
0.2150
0.2160
0.2170
0.2180
0.2190
0.2199
0.2209
0.2219
0.2229
0.2238
0.2248
0.2258
0.2268
0.2278
0.2287
0.2297
0.2307
0.2317
0.2326
0.2336
0.2346
0.2356
0.2366
0.2375
0.2385
0.2395
0.2405
0.2414
0.2424
0.2434
0.2444
0.2453
0.2463
0.2473
0.2483
0.2493
0.2502
0.2512
0.2522
0.2532
0.2541
0.2551
0.2561
0.2571
0.2581
0.2590
0.2600
0.2610
0.2620
0.2629
0.2639
0.2649
0.2659
0.2669
0.2678
0.2688
0.2698
0.2708
0.2717
0.2727
0.2737
0.2747
0.2757
0.2766
0.2776
0.2786
0.2796
0.2805
0.2815
0.2825
0.2835
0.2844
0.2854
0.2864
0.2874
0.2884
0.2893
0.2903
0.2913
0.2923
0.2932
0.2942
0.2952
0.2962
0.2972
0.2981
0.2991
0.3001
0.3011
0.3020
0.3030
0.3040
0.3050
0.3060
0.3069
0.3079
0.3089
0.3099
0.3108
0.3118
0.3128
0.3138
0.3148
0.3157
0.3167
0.3177
0.3187
0.3196
0.3206
0.3216
0.3226
0.3235
0.3245
0.3255
0.3265
0.3275
0.3284
0.3294
0.3304
0.3314
0.3323
0.3333
0.3343
0.3353
0.3363
0.3372
0.3382
0.3392
0.3402
0.3411
0.3421
0.3431
0.3441
0.3451
0.3460
0.3470
0.3480
0.3490
0.3499
0.3509
0.3519
0.3529
0.3539
0.3548
0.3558
0.3568
0.3578
0.3587
0.3597
0.3607
0.3617
0.3626
0.3636
0.3646
0.3656
0.3666
0.3675
0.3685
0.3695
0.3705
0.3714
0.3724
0.3734
0.3744
0.3754
0.3763
0.3773
0.3783
0.3793
0.3802
0.3812
0.3822
0.3832
0.3842
0.3851
0.3861
0.3871
0.3881
0.3890
0.3900
0.3910
0.3920
0.3929
0.3939
0.3949
0.3959
0.3969
0.3978
0.3988
0.3998
0.4008
0.4017
0.4027
0.4037
0.4047
0.4057
0.4066
0.4076
0.4086
0.4096
0.4105
0.4115
0.4125
0.4135
0.4145
0.4154
0.4164
0.4174
0.4184
0.4193
0.4203
0.4213
0.4223
0.4233
0.4242
0.4252
0.4262
0.4272
0.4281
0.4291
0.4301
0.4311
0.4320
0.4330
0.4340
0.4350
0.4360
0.4369
0.4379
0.4389
0.4399
0.4408
0.4418
0.4428
0.4438
0.4448
0.4457
0.4467
0.4477
0.4487
0.4496
0.4506
0.4516
0.4526
0.4536
0.4545
0.4555
0.4565
0.4575
0.4584
0.4594
0.4604
0.4614
0.4624
0.4633
0.4643
0.4653
0.4663
0.4672
0.4682
0.4692
0.4702
0.4711
0.4721
0.4731
0.4741
0.4751
0.4760
0.4770
0.4780
0.4790
0.4799
0.4809
0.4819
0.4829
0.4839
0.4848
0.4858
0.4868
0.4878
0.4887
0.4897
0.4907
0.4917
0.4927
0.4936
0.4946
0.4956
0.4966
0.4975
0.4985
0.4995
0.5005
0.5015
0.5024
0.5034
0.5044
0.5054
0.5063
0.5073
0.5083
0.5093
0.5102
0.5112
0.5122
0.5132
0.5142
0.5151
0.5161
0.5171
0.5181
0.5190
0.5200
0.5210
0.5220
0.5230
0.5239
0.5249
0.5259
0.5269
0.5278
0.5288
0.5298
0.5308
0.5318
0.5327
0.5337
0.5347
0.5357
0.5366
0.5376
0.5386
0.5396
0.5406
0.5415
0.5425
0.5435
0.5445
0.5454
0.5464
0.5474
0.5484
0.5493
0.5503
0.5513
0.5523
0.5533
0.5542
0.5552
0.5562
0.5572
0.5581
0.5591
0.5601
0.5611
0.5621
0.5630
0.5640
0.5650
0.5660
0.5669
0.5679
0.5689
0.5699
0.5709
0.5718
0.5728
0.5738
0.5748
0.5757
0.5767
0.5777
0.5787
0.5796
0.5806
0.5816
0.5826
0.5836
0.5845
0.5855
0.5865
0.5875
0.5884
0.5894
0.5904
0.5914
0.5924
0.5933
0.5943
0.5953
0.5963
0.5972
0.5982
0.5992
0.6002
0.6012
0.6021
0.6031
0.6041
0.6051
0.6060
0.6070
0.6080
0.6090
0.6100
0.6109
0.6119
0.6129
0.6139
0.6148
0.6158
0.6168
0.6178
0.6187
0.6197
0.6207
0.6217
0.6227
0.6236
0.6246
0.6256
0.6266
0.6275
0.6285
0.6295
0.6305
0.6315
0.6324
0.6334
0.6344
0.6354
0.6363
0.6373
0.6383
0.6393
0.6403
0.6412
0.6422
0.6432
0.6442
0.6451
0.6461
0.6471
0.6481
0.6491
0.6500
0.6510
0.6520
0.6530
0.6539
0.6549
0.6559
0.6569
0.6578
0.6588
0.6598
0.6608
0.6618
0.6627
0.6637
0.6647
0.6657
0.6666
0.6676
0.6686
0.6696
0.6706
0.6715
0.6725
0.6735
0.6745
0.6754
0.6764
0.6774
0.6784
0.6794
0.6803
0.6813
0.6823
0.6833
0.6842
0.6852
0.6862
0.6872
0.6882
0.6891
0.6901
0.6911
0.6921
0.6930
0.6940
0.6950
0.6960
0.6969
0.6979
0.6989
0.6999
0.7009
0.7018
0.7028
0.7038
0.7048
0.7057
0.7067
0.7077
0.7087
0.7097
0.7106
0.7116
0.7126
0.7136
0.7145
0.7155
0.7165
0.7175
0.7185
0.7194
0.7204
0.7214
0.7224
0.7233
0.7243
0.7253
0.7263
0.7273
0.7282
0.7292
0.7302
0.7312
0.7321
0.7331
0.7341
0.7351
0.7360
0.7370
0.7380
0.7390
0.7400
0.7409
0.7419
0.7429
0.7439
0.7448
0.7458
0.7468
0.7478
0.7488
0.7497
0.7507
0.7517
0.7527
0.7536
0.7546
0.7556
0.7566
0.7576
0.7585
0.7595
0.7605
0.7615
0.7624
0.7634
0.7644
0.7654
0.7664
0.7673
0.7683
0.7693
0.7703
0.7712
0.7722
0.7732
0.7742
0.7751
0.7761
0.7771
0.7781
0.7791
0.7800
0.7810
0.7820
0.7830
0.7839
0.7849
0.7859
0.7869
0.7879
0.7888
0.7898
0.7908
0.7918
0.7927
0.7937
0.7947
0.7957
0.7967
0.7976
0.7986
0.7996
0.8006
0.8015
0.8025
0.8035
0.8045
0.8054
0.8064
0.8074
0.8084
0.8094
0.8103
0.8113
0.8123
0.8133
0.8142
0.8152
0.8162
0.8172
0.8182
0.8191
0.8201
0.8211
0.8221
0.8230
0.8240
0.8250
0.8260
0.8270
0.8279
0.8289
0.8299
0.8309
0.8318
0.8328
0.8338
0.8348
0.8358
0.8367
0.8377
0.8387
0.8397
0.8406
0.8416
0.8426
0.8436
0.8445
0.8455
0.8465
0.8475
0.8485
0.8494
0.8504
0.8514
0.8524
0.8533
0.8543
0.8553
0.8563
0.8573
0.8582
0.8592
0.8602
0.8612
0.8621
0.8631
0.8641
0.8651
0.8661
0.8670
0.8680
0.8690
0.8700
0.8709
0.8719
0.8729
0.8739
0.8749
0.8758
0.8768
0.8778
0.8788
0.8797
0.8807
0.8817
0.8827
0.8836
0.8846
0.8856
0.8866
0.8876
0.8885
0.8895
0.8905
0.8915
0.8924
0.8934
0.8944
0.8954
0.8964
0.8973
0.8983
0.8993
0.9003
0.9012
0.9022
0.9032
0.9042
0.9052
0.9061
0.9071
0.9081
0.9091
0.9100
0.9110
0.9120
0.9130
0.9140
0.9149
0.9159
0.9169
0.9179
0.9188
0.9198
0.9208
0.9218
0.9227
0.9237
0.9247
0.9257
0.9267
0.9276
0.9286
0.9296
0.9306
0.9315
0.9325
0.9335
0.9345
0.9355
0.9364
0.9374
0.9384
0.9394
0.9403
0.9413
0.9423
0.9433
0.9443
0.9452
0.9462
0.9472
0.9482
0.9491
0.9501
0.9511
0.9521
0.9531
0.9540
0.9550
0.9560
0.9570
0.9579
0.9589
0.9599
0.9609
0.9618
0.9628
0.9638
0.9648
0.9658
0.9667
0.9677
0.9687
0.9697
0.9706
0.9716
0.9726
0.9736
0.9746
0.9755
0.9765
0.9775
0.9785
0.9794
0.9804
0.9814
0.9824
0.9834
0.9843
0.9853
0.9863
0.9873
0.9882
0.9892
0.9902
0.9912
0.9921
0.9931
0.9941
0.9951
0.9961
0.9970
0.9980
0.9990
1.0000
答案 0 :(得分:0)
这不是错误,只是警告。
如果您编写具有32位分辨率的.wav文件,则允许的数据范围为-1 <= w <= 1.但是对于8,16或24位,限制为-1 <= w &LT; 1,使得w == 1产生剪切警告(1位短'1',即16位模式下1 - 1/32768 = 0.99996948242188。),并且它不能写入文件。你可以忽略它,或者:
format long
w = w./max(abs(w(:)))*(1-(2^-(nbits-1)));
wavwrite(w,'flute_new');