A non-orthogonal multiple access, NOMA, data transmission method, comprising: determining a scrambling manner based on a sending waveform; scrambling to-be-scrambled data based on the scrambling manner, to obtain scrambled output data; and sending the scrambled output data; wherein the method further comprises preprocessing to-be-preprocessed input data by using a preprocessing codebook to obtain preprocessed output data, wherein the to-be-preprocessed input data is the scrambled output data or wherein the preprocessed output data is to-be-scrambled data; wherein a type of the preprocessing codebook includes an extended sequence, an extended sequence set, or an extended matrix, wherein the extended sequence is [1,j, -1,-j] T ; the extended sequence set includes [1, j, -1, -j], [1, j, -1, j], [-1, j, 1, j], and [-1, j, 1, -j]; and the extended matrix is 0 0 1 1 1 − 1 0 0 ; wherein if the preprocessing codebook is the extended sequence, the preprocessing comprises multiplying the extended sequence by each modulation symbol of the to-be-preprocessed input data; if a preprocessing codebook is the extended sequence set, the preprocessing comprises mapping each modulation symbol of the to-be-preprocessed input data to one of the four extended sequences and the preprocessing comprises determining the preprocessed output data based on the to-be-preprocessed input data and a mapping relationship between the to-be-preprocessed input data and the four extended sequences; and if a preprocessing codebook is the extended matrix, the preprocessing comprises multiplying the extended matrix by the to-be-preprocessed input data, wherein the to-be-preprocessed input data includes two modulation symbols. determining a scrambling manner based on a sending waveform; scrambling to-be-scrambled data based on the scrambling manner, to obtain scrambled output data; and sending the scrambled output data; wherein the method further comprises preprocessing to-be-preprocessed input data by using a preprocessing codebook to obtain preprocessed output data, wherein the to-be-preprocessed input data is the scrambled output data or wherein the preprocessed output data is to-be-scrambled data; wherein a type of the preprocessing codebook includes an extended sequence, an extended sequence set, or an extended matrix, wherein the extended sequence is [1,j, -1,-j] T ; the extended sequence set includes [1, j, -1, -j], [1, j, -1, j], [-1, j, 1, j], and [-1, j, 1, -j]; and the extended matrix is 0 0 1 1 1 − 1 0 0 ; wherein if the preprocessing codebook is the extended sequence, the preprocessing comprises multiplying the extended sequence by each modulation symbol of the to-be-preprocessed input data; if a preprocessing codebook is the extended sequence set, the preprocessing comprises mapping each modulation symbol of the to-be-preprocessed input data to one of the four extended sequences and the preprocessing comprises determining the preprocessed output data based on the to-be-preprocessed input data and a mapping relationship between the to-be-preprocessed input data and the four extended sequences; and if a preprocessing codebook is the extended matrix, the preprocessing comprises multiplying the extended matrix by the to-be-preprocessed input data, wherein the to-be-preprocessed input data includes two modulation symbols. <EOS>